diff --git a/debian/jitsi-meet-web-config.postinst b/debian/jitsi-meet-web-config.postinst index 13b0c9973..4b2019fe5 100644 --- a/debian/jitsi-meet-web-config.postinst +++ b/debian/jitsi-meet-web-config.postinst @@ -192,8 +192,34 @@ case "$1" in invoke-rc.d nginx reload elif [[ "$FORCE_APACHE" = "true" && ( -z "$JVB_HOSTNAME_OLD" || "$RECONFIGURING" = "true" ) ]] ; then - echo "Apache2 server is installed, automatic configuration is not supported at this time." - echo "You need to configure yourselve the virtual host for your domain." + # this is a reconfigure, lets just delete old links + if [ "$RECONFIGURING" = "true" ] ; then + a2dissite $JVB_HOSTNAME_OLD.conf + rm -f /etc/jitsi/meet/$JVB_HOSTNAME_OLD-config.js + fi + + # apache2 config + if [ ! -f /etc/apache2/sites-available/$JVB_HOSTNAME.conf ] ; then + # when creating new config, make sure all needed modules are enabled + a2enmod rewrite ssl headers proxy_http include + cp /usr/share/doc/jitsi-meet-web/jitsi-meet.example-apache /etc/apache2/sites-available/$JVB_HOSTNAME.conf + a2ensite $JVB_HOSTNAME.conf + sed -i "s/jitsi-meet.example.com/$JVB_HOSTNAME/g" /etc/apache2/sites-available/$JVB_HOSTNAME.conf + fi + + if [ "$CERT_CHOICE" = "$UPLOADED_CERT_CHOICE" ] ; then + # replace self-signed certificate paths with user provided ones + CERT_KEY_ESC=$(echo $CERT_KEY | sed 's/\./\\\./g') + CERT_KEY_ESC=$(echo $CERT_KEY_ESC | sed 's/\//\\\//g') + sed -i "s/ssl_certificate_key\ \/etc\/jitsi\/meet\/.*key/ssl_certificate_key\ $CERT_KEY_ESC/g" \ + /etc/apache2/sites-available/$JVB_HOSTNAME.conf + CERT_CRT_ESC=$(echo $CERT_CRT | sed 's/\./\\\./g') + CERT_CRT_ESC=$(echo $CERT_CRT_ESC | sed 's/\//\\\//g') + sed -i "s/ssl_certificate\ \/etc\/jitsi\/meet\/.*crt/ssl_certificate\ $CERT_CRT_ESC/g" \ + /etc/apache2/sites-available/$JVB_HOSTNAME.conf + fi + + invoke-rc.d apache2 reload fi # and we're done with debconf diff --git a/debian/jitsi-meet-web-config.postrm b/debian/jitsi-meet-web-config.postrm index f09d83916..ef96135cf 100644 --- a/debian/jitsi-meet-web-config.postrm +++ b/debian/jitsi-meet-web-config.postrm @@ -27,6 +27,9 @@ case "$1" in if [ -x "/etc/init.d/nginx" ]; then invoke-rc.d nginx reload fi + if [ -x "/etc/init.d/apache2" ]; then + invoke-rc.d apache2 reload + fi ;; purge) db_get jitsi-meet/jvb-hostname @@ -35,6 +38,8 @@ case "$1" in rm -f /etc/jitsi/meet/$JVB_HOSTNAME-config.js rm -f /etc/nginx/sites-available/$JVB_HOSTNAME.conf rm -f /etc/nginx/sites-enabled/$JVB_HOSTNAME.conf + rm -f /etc/apache2/sites-available/$JVB_HOSTNAME.conf + rm -f /etc/apache2/sites-enabled/$JVB_HOSTNAME.conf rm -f /etc/jitsi/videobridge/$JVB_HOSTNAME.jks rm -f /etc/jitsi/videobridge/$JVB_HOSTNAME.p12 rm -f /etc/jitsi/meet/$JVB_HOSTNAME.key diff --git a/debian/jitsi-meet-web.docs b/debian/jitsi-meet-web.docs index 8421d4d7d..cd786636a 100644 --- a/debian/jitsi-meet-web.docs +++ b/debian/jitsi-meet-web.docs @@ -1,4 +1,5 @@ README.md doc/debian/jitsi-meet/jitsi-meet.example +doc/debian/jitsi-meet/jitsi-meet.example-apache doc/debian/jitsi-meet/README config.js diff --git a/doc/debian/jitsi-meet/jitsi-meet.example-apache b/doc/debian/jitsi-meet/jitsi-meet.example-apache new file mode 100644 index 000000000..3776f0d24 --- /dev/null +++ b/doc/debian/jitsi-meet/jitsi-meet.example-apache @@ -0,0 +1,43 @@ + + + ServerName jitsi-meet.example.com + Redirect permanent / https://jitsi-meet.example.com/ + RewriteEngine On + RewriteCond %{HTTPS} off + RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] + + + + + ServerName jitsi-meet.example.com + + SSLProtocol TLSv1 TLSv1.1 TLSv1.2 + SSLEngine on + SSLProxyEngine on + SSLCertificateFile /etc/jitsi/meet/jitsi-meet.example.com.crt + SSLCertificateKeyFile /etc/jitsi/meet/jitsi-meet.example.com.key + SSLCipherSuite "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED" + SSLHonorCipherOrder on + Header set Strict-Transport-Security "max-age=31536000" + + DocumentRoot "/usr/share/jitsi-meet" + + Options Indexes MultiViews Includes FollowSymLinks + AddOutputFilter Includes html + AllowOverride All + Order allow,deny + Allow from all + + + Alias "/config.js" "/etc/jitsi/meet/jitsi-meet.example.com-config.js" + + Require all granted + + + ProxyPreserveHost on + ProxyPass /http-bind http://localhost:5280/http-bind/ + ProxyPassReverse /http-bind http://localhost:5280/http-bind/ + + RewriteEngine on + RewriteRule ^/([a-zA-Z0-9]+)$ /index.html +