Configuration Apache en tant que Reverse Proxy + HTTPS
Voici la configuration pour configurer apache en tant que Reverse Proxy
Cette page page montre un exemple de configuration de reverse proxy apache
Configuration
192.168.1.200 → Serveur Web principal + Reverse Proxy, marchine accessible depuis l'exterieur
192.168.1.201 → Serveur Nextcloud, serveur où le flux de nextcloud.franopit.fr sera redirigé, non accessible sans le proxy depuis l'exterieur
Activation module mod_proxy sur Apache:
a2enmod mod_proxy_http
Creation d'un fichier Zone pour l'hote nextcloud.franopit.fr sur le serveur Apache Proxy:
A mettre dans /etc/apache2/sites-avalable
<VirtualHost *:80>
# NDD (FQDN)
ServerName nextcloud.franopit.fr
# Redirection traffic http vers https
RewriteEngine on
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:443>
ServerName nextcloud.franopit.fr
#Proxy vers serveur nextcloud en https
ProxyPreserveHost on
ProxyRequests on
SSLProxyEngine on
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyVerify none
ProxyPass / https://192.168.10.201/
ProxyPassReverse / https://192.168.10.201/
# Certificats SSL let'sencrypt pour la configuration SSL https de l'hote
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/nextcloud.franopit.fr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/nextcloud.franopit.fr/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>
SSLProtocol all -SSLv2 -SSLv3
</VirtualHost>
Detail des options:
- SSLEngineOn, SSLCertificateFile, SSLCertificateKeyFile : paramétrage du SSL, avec le certificat et la clé
- SSLProxyEngine : activation du mode Proxy en SSL
- SSLProxyCheckPeerCN et SSLProxyCheckPeerName : permet de ne pas vérifier le CN et le nom du serveur distant
- SSLProxyVerify : pas de vérification du serveur distant
- SSLProxyMachineCertificateFile : concaténation de la clé et du certificat de la machine (pas nécessaire si on désactive les vérifications)
- ProxyPass et ProxyPassReverse : il s'agit du paramétrage "standard" du mode reverse proxy
- ProxyPreserverHost On : garde le nom DNS du reverse proxy (sinon on récupère l'adresse IP du serveur cible)
Redémarrage service apache pour appliquer les modifications:
systemctl restart apache2
Docs
→ Apache : reverse proxy https
→ IT-CONNECT - Apache Mise en place d’un Reverse Proxy Apache avec mod_proxy