FLKone / HFRplus

Application iOS pour le forum hardware.fr - iOS 5+
http://forum.hardware.fr/hfr/apple/unique-hfr-dispo-sujet_1711_1.htm
17 stars 1 forks source link

Reverse proxy SSL/IPv6 #138

Open FLKone opened 8 years ago

FLKone commented 8 years ago

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 :

c0mm0n commented 8 years ago

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.

c0mm0n commented 8 years ago

Bon la plupart des clicks meme vers des liens avec le ndd du proxy font sauter l'authentification.

Mais le profil ca marche.

Wiripse commented 8 years ago

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...

c0mm0n commented 8 years ago

:D

Wiripse commented 8 years ago

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:

<VirtualHost *:443>
        ServerAdmin lol@dtc.com
        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>

a2enmod proxy_http

a2ensite FICHIER

service apache2 restart

c0mm0n commented 8 years ago

T'arrives a clicker sans perte de cookie ?

Poster meme ? Drapeaux ?

FLKone commented 8 years ago

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)

FLKone commented 8 years ago

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 tim@apple.com

        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>