J'ai un hôte Linux exécutant Apache et un hôte Windows exécutant IIS. J'ai un domaine qui pointe vers l'hôte Linux et j'ai besoin de relayer des requêtes (proxy) à IIS; J'ai donc la définition d'hôte virtuel suivante dans Apache (qui fonctionne parfaitement):
<VirtualHost 192.168.0.2:80>
ServerName www.acme.com
DocumentRoot /var/www/acme.com
RewriteEngine On
RewriteOptions Inherit
RewriteRule ^/(.*) http://win.acme.com/$1 [P]
</VirtualHost>
maintenant je veux ajouter le support SSL; la définition devient:
<VirtualHost 192.168.0.2:443>
ServerName www.acme.com
DocumentRoot /var/www/acme.com
GnuTLSEnable On
GnuTLSPriorities NORMAL:%COMPAT
GnuTLSCertificateFile /var/www/ssl/www.acme.com.crt
GnuTLSKeyFile /var/www/ssl/www.acme.com.key
RewriteEngine On
RewriteOptions Inherit
RewriteRule ^/(.*) https://win.acme.com/$1 [P]
</VirtualHost>
J'ai des certificats valides et de confiance sur les deux serveurs Web et si je visite https://win.acme.com
tout va bien, cependant, lorsque je visite https://www.acme.com
, je reçois un message d'erreur 500 Internal Server. Un aperçu des journaux d’erreur montre:
[Mer 20 juil 08:35:34 2011] [erreur] [client 76.168.166.70] SSL Proxy demandé pour www.wileybits.com:80 mais pas activé [Conseil: SSLProxyEngine] [Mer 20 juillet 08:35:34 2011] [erreur] proxy: HTTPS: n'a pas pu activer le support ssl pour 74.166.186.70:443 (win.acme.com)
remarquez que la demande de proxy semble concerner le mauvais domaine (wileybits) ... le domaine qu’il affiche est également hébergé par mon serveur Apache mais je ne comprends pas pourquoi il apparaît dans les journaux de acme.com Recherche DNS peut-être?)
en tout cas, que me manque-t-il?
merci d'avance - ekkis
p.s. Les noms d'hôtes et les adresses ont été modifiés pour protéger l'innocent :)
* mettre à jour *
avec:
RewriteRule ^/(.*) https://win.acme.com/$1 [R,L]
cela semble bien fonctionner, mais bien sûr, le nom d'hôte de Windows devient visible, ce qui n'est pas acceptable dans mon scénario.
J'ai aussi essayé (au lieu de mod_rewrite):
ProxyRequests Off
ProxyPass / https://win.acme.com/
mais même erreur
compris ... apparemment je peux le faire:
SSLProxyEngine On
RequestHeader set Front-End-Https "On"
ProxyPass / https://win.acme.com/
ProxyPassReverse / https://win.acme.com/
CacheDisable *
et ça marche très bien!
[la solution est venue de l'affichage de mikeg sur 3cx.org]
Pas sûr de la cause de cette erreur, mais vous voudrez peut-être essayer d’utiliser Squid ou Varnish pour y parvenir. Auparavant, j'utilisais Squid pour créer un proxy sans problème avec une instance Windows IIS sécurisée.