| @@ -26,4 +26,75 @@ matrix_nginx_proxy_enabled: false | |||||
| - ensure that the `/.well-known/acme-challenge` location for each "port=80 vhost" gets proxied to `http://localhost:2402` (controlled by `matrix_ssl_certbot_standalone_http_port`) for automated SSL renewal to work | - ensure that the `/.well-known/acme-challenge` location for each "port=80 vhost" gets proxied to `http://localhost:2402` (controlled by `matrix_ssl_certbot_standalone_http_port`) for automated SSL renewal to work | ||||
| - ensure that you restart/reload your webserver once in a while, so that renewed SSL certificates would take effect (once a month should be enough) | |||||
| - ensure that you restart/reload your webserver once in a while, so that renewed SSL certificates would take effect (once a month should be enough) | |||||
| **Apache2 sample configuration files** | |||||
| 1. Create a new apache configuration file named 000-matrix-ssl.conf and enable it. | |||||
| # Auto redirect http to https | |||||
| <VirtualHost *:80> | |||||
| ServerName matrix.DOMAIN | |||||
| Redirect permanent / https://matrix.DOMAIN/ | |||||
| </VirtualHost> | |||||
| <VirtualHost *:443> | |||||
| ServerName matrix.DOMAIN | |||||
| SSLEngine On | |||||
| SSLCertificateFile /etc/letsencrypt/live/DOMAIN/fullchain.pem | |||||
| SSLCertificateKeyFile /etc/letsencrypt/live/DOMAIN/privkey.pem | |||||
| SSLProxyEngine on | |||||
| SSLProxyProtocol +TLSv1.1 +TLSv1.2 | |||||
| SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH | |||||
| ProxyPreserveHost On | |||||
| ProxyRequests Off | |||||
| ProxyVia On | |||||
| # Keep /.well-known/matrix/client and /_matrix/identity free for different proxy/location | |||||
| ProxyPassMatch ^/.well-known/matrix/client ! | |||||
| ProxyPassMatch ^/_matrix/identity ! | |||||
| # Proxy all 443 traffic to the synapse matrix client api | |||||
| ProxyPass / http://localhost:8008/ | |||||
| ProxyPassReverse / http://localhost:8008/ | |||||
| # Map /.well-known/matrix/client for client discovery | |||||
| Alias /.well-known/matrix/client /matrix/static-files/.well-known/matrix/client | |||||
| <Files "/matrix/static-files/.well-known/matrix/client"> | |||||
| Require all granted | |||||
| </Files> | |||||
| <Location "/.well-known/matrix/client> | |||||
| Header always set Content-Type "application/json" | |||||
| Header always set Access-Control-Allow-Origin "*" | |||||
| </Location> | |||||
| <Directory /matrix/static-files/.well-known/matrix/> | |||||
| AllowOverride All | |||||
| # Apache 2.4: | |||||
| Require all granted | |||||
| # Or for Apache 2.2: | |||||
| #order allow,deny | |||||
| </Directory> | |||||
| # Map /_matrix/identity to the identity server | |||||
| <Location /_matrix/identity> | |||||
| ProxyPass http://localhost:8090/_matrix/identity | |||||
| </Location> | |||||
| ErrorLog ${APACHE_LOG_DIR}/synapse-error.log | |||||
| CustomLog ${APACHE_LOG_DIR}/synapse-access.log combined | |||||
| </VirtualHost> | |||||
| 2. Enable required apache2 modules | |||||
| a2enmod proxy | |||||
| a2enmod proxy_http | |||||
| a2enmod proxy_connect | |||||
| a2enmod proxy_html | |||||
| a2enmod headers | |||||
| 3. Reload apache | |||||
| systemctl restart apache2 | |||||
| Notes: port 8448 does not get proxied and is left available for the homeserver federation api. | |||||