Reverse proxy SSL/IPv6
Test effectué avec NGINX et la config suivante :
(pas de SSL pour le moment, ce sera pour la phase 2 :D)
server {
listen 80;
server_name reverse.hfr.local;
location / {
proxy_pass http://forum.hardware.fr;
}
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass_header Set-Cookie;
proxy_cookie_domain forum.hardware.fr reverse.hfr.local;
proxy_cookie_domain hardware.fr reverse.hfr.local;
}
reverse.hfr.local à remplacer par n'importe quel domaine :o
Ne fonctionne pas :
- identification OK
- les pages affichées restent celles pour les utilisateurs non-identifiés
Chez moi ca marche avec cette conf.
Apres des que tu cliques un lien avec le vrai ndd, ca pose problème visiblement, mais j'arrive a accéder a mon profil sur un domaine tiers.
Bon la plupart des clicks meme vers des liens avec le ndd du proxy font sauter l'authentification.
Mais le profil ca marche.
Besoin d'aide pour l'IPV6. Je n'arrive à rien. Y'a que si je m'auto-ping sur Z:Z:Z:Z::1 que ça marche.
Si je m'auto-ping sur Z:Z:Z:Z:1:1:1:1 ça marche pas...
Et depuis l'extérieur c'est même pas la peine...
:D
Sinon je suis arrivé à quelque chose d'opérationnel pour le reverse proxy https avec apache2.
Je considère ici que la question des certificats est déjà réglée :o:
- Modifier /etc/apache2/ports.conf et ajouter
NameVirtualHost *:443 - Créer un vhost dans /etc/apache2/sites-available avec le contenu suivant :
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName NDD.EXT
ServerAlias NDD.EXT
ErrorLog ${APACHE_LOG_DIR}/ssl_error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/NDD.EXT/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/NDD.EXT/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/NDD.EXT/chain.pem
<FilesMatch "\.(cgi|shtml|phtml|php)$" >
SSLOptions +StdEnvVars
</FilesMatch>
ProxyPass / http://forum.hardware.fr/
ProxyPassReverse / http://forum.hardware.fr/
ProxyPassReverseCookieDomain .hardware.fr NDD.EXT
</VirtualHost>
- Activer le plugin de proxy
a2enmod proxy_http
- Activer le vhost créé
a2ensite FICHIER
- Reboot apache
service apache2 restart
T'arrives a clicker sans perte de cookie ?
Poster meme ? Drapeaux ?
Bon je viens de tester sur un serveur Gandi.net, avec la conf auto de LetsEncrypt + les 3 lignes pour le reverse et ça a l'air de rouler. IPv6 a l'air de fonctionner aussi (avec le site https://www.ssllabs.com/ qu'ils filent à la fin du process LetsEncrypte il vérifie bien le domaine en IPv4 et IPv6 et c'est OK pour les deux)
Je vais balancer une version à Apple pour voir, sans la publier sur le store.
Faut que je recode l'identification qui elle ne passe pas par le forum mais par le site :o
Faut aussi trouver un moyen de bloquer l'accès au proxy en dehors de l'appli (une clé dans les headers ça serait le top, mais je sais pas comment faire pour qu'Apache vérifie ça :D)
Config finale avec blocage sur l'UserAgent, même si c'est pas le top ça limite déjà le nombre de requêtes à la con/robots
Thanks les loulous :o
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /etc/letsencrypt/live/tim.cook.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/tim.cook.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
ServerName tim.cook.com
SSLCertificateChainFile /etc/letsencrypt/live/tim.cook.com/chain.pem
ProxyPass / http://forum.hardware.fr/
ProxyPassReverse / http://forum.hardware.fr/
ProxyPassReverseCookieDomain .hardware.fr tim.cook.com
SetEnvIfNoCase User-Agent .*HFR+.* apps_hfr
SetEnvIfNoCase User-Agent .*:o.* apps_hfr
<Location />
Order Deny,Allow
Deny from All
Allow from env=apps_hfr
</Location>
</VirtualHost>
</IfModule>