Problème reverse proxy SSL Apache

Problème reverse proxy SSL Apache - Logiciels - Linux et OS Alternatifs

Marsh Posté le 29-07-2011 à 12:27:47    

Bonjour,

 

Je dois installer un reverse proxy sous Apache, selon ce schéma :

 

Serveur http backoffice (SAP) --- Reverse Proxy Apache (https) ---- internet ---- utilisateurs

 

Le but étant donc que la communication passant sur internet soit chiffrée (la communication entre le reverse proxy et le serveur web SAP restant elle en HTTP).

 

Pour commencer j'ai fait une maquette avec un PC en Ubuntu et j'ai installé Apache. Puis en suivant ce tutoriel j'ai mis les lignes suivantes dans httpd.conf :

 
Code :
  1. LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
  2. LoadModule cache_module /usr/lib/apache2/modules/mod_cache.so
  3. LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
  4. LoadModule proxy_connect_module /usr/lib/apache2/modules/mod_proxy_connect.so
  5. LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so
  6. LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
  7. LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
  8. Servername tsypclab.mondomaine.fr
  9. NameVirtualHost tsypclab.mondomaine.fr:443
  10. <VirtualHost tsypclab.mondomaine.fr:443>
  11. RewriteEngine On
  12. RequestHeader set Front-End-Https "On"
  13. ProxyPreserveHost On
  14. SSLEngine On
  15. SSLCertificateFile /etc/apache2/ssl/server.crt
  16. SSLCertificateKeyFile /etc/apache2/ssl/server.key
  17. #ProxyPass / http://80.67.176.202:8000/
  18. #ProxyPassReverse / http://80.67.176.202:8000/
  19. ProxyPass / http://78.96.12.50:50100/
  20. ProxyPassReverse / http://78.96.12.50:50100/
  21. CacheDisable *
  22. </VirtualHost>
 

(l'adresse 78.96.12.50 est une adresse IP volée, ce n'est pas la vraie IP publique)

 

Avec cette conf, le résultat étonnant est que quand je tape https://tsypclab.mondomaine.fr/ dans mon navigateur (l'enregistrement DNS qui va bien a été fait), je suis redirigé vers http://tsypclab.mondomaine.fr/index.html, soit la page par défaut de apache "It Works !" en local. Dans l'access log d'apache j'ai un code HTTP 302, donc redirection si je comprends bien.

 

Ce que je ne comprends pas c'est que si dans mon httpd.conf donné plus haut je commente les lignes ProxyPass et ProxyPassReverse et décommente celles avec l'adresse d'un autre serveur (http://80.67.176.202:8000/), là ça marche comme attendu, en tapant https://tsypclab.mondomaine.fr/ dans mon navigateur je vois bien s'afficher la page servie sur 80.67.176.202:8000.

 

Donc apparemment suivant le serveur en backoffice le comportement du reverse proxy change, mais je ne comprends pas pourquoi :??:

 

Je précise que bien entendu le serveur SAP est joignable depuis le reverse proxy, et qu'un wget http://78.96.12.50:50100/ fonctionne bien.

 

Des idées ? :jap:


Message édité par Misssardonik le 29-07-2011 à 12:28:27

---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
Reply

Marsh Posté le 29-07-2011 à 12:27:47   

Reply

Marsh Posté le 29-07-2011 à 14:13:32    

Observe le code de la page d'accueil de http://X.Y.Z.W:50100/
 
T'as surement un redirect dedans qui pose problème, ou des références à des URLs complètes dans le code de la page, etc.


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 29-07-2011 à 15:28:33    

Merci pour ta réponse.
Je ne vois pas d'URL complète dans le code de la page (par "URL complète" tu veux bien dire un truc genre http://example.com/foo ? ).

 

J'ai supprimé le Listen 80 dans ports.conf (pour ne laisser que le Listen 443) et supprimé 000-default dans apache2/sites-enabled/

 

Maintenant j'arrive à afficher l'a page d'accueil, mais j'ai toujours un souci : il semble effectivement y avoir un problème de redirect car quand je tape https://monreverseproxy dans mon navigateur il ne sait rien m'afficher, alors que si je tape https://monreverseproxy/index.html là c'est OK il me donne bien la page du backoffice.
Alors que si j'accède directement au site original si je tape http://nomdusite:50100 j'ai une redirection 302 vers index.html (et bien sûr si je tape http://nomdusite:50100/index.html là c'est affichage direct, code 200).

 

Donc comment on gère les redirections ?


Message édité par Misssardonik le 29-07-2011 à 15:29:42

---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
Reply

Marsh Posté le 29-07-2011 à 15:40:09    

Si tu observes (avec live http headers, ou wireshark ou quoique ce soit qui te permette de voir le code renvoyé et la valeur qui va avec)  http://nomdusite:50100, ca te renvoi un redirect sur /index.html ou sur  http://nomdusite:50100/index.html ?


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 29-07-2011 à 15:48:44    

si je demande http://nomdusite:50100 j'ai une redirection 302 vers http://78.96.12.50:50100/index.html
 
Et en fait je me rends compte que quand je demande https://monreverseproxy j'ai une redirection 302 vers http://monreverseproxy/index.html qui donc forcément ne fonctionne pas vu que c'est du http.
Du coup j'ai essayé de mettre dans mon httpd.conf la ligne suivante :
 
ProxyHTMLURLMap http://10.41.95.96 https://10.41.95.96
 
mais ça ne change rien, on est toujours redirigé vers du http.


---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
Reply

Marsh Posté le 29-07-2011 à 16:30:21    

Bon, je crois que j'ai contourné le problème en réactivant l'écoute sur le port 80 sur mon reverse-proxy et en faisant une redirection, comme ça :
 
NameVirtualHost *:80
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
 
 
ça a l'air de pas trop mal marcher mais ça me semble un peu crado parce que ça fait une redirection de plus (et que ça fait un port de plus à ouvrir), j'aurais préféré directement envoyer la bonne redirection mais j'y arrive pas.


---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
Reply

Marsh Posté le 31-07-2011 à 08:29:49    

Tu peux pas ajouter le rewrite de / vers index.html directement dans ton reverse proxy plutôt que par ton backend qui a l'air foireux (enfin au lieu de donner en relatif il préfère donner en nom complet) ?


Message édité par Je@nb le 31-07-2011 à 08:30:00
Reply

Marsh Posté le 31-07-2011 à 12:47:14    

si je peux le faire mais le site est truffé de redirections, sur quasiment chaque lien le problème se représente. Donc si je fais ça j'aurai réglé le problème pour la page d'accueil mais pour toutes celles d'après.  
Et je ne peux faire aucune modification sur le backend non plus, je n'y ai pas accès.


---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed