web-dev-qa-db-fra.com

Apache ProxyPass avec SSL

Je souhaite proxy les demandes d'un site SSL via un site non SSL. Mon Apache httpd.conf ressemble à ceci:

<VirtualHost 1.2.3.4:80>
    ServerName foo.com
    ProxyPass / https://bar.com/
</VirtualHost>

Donc, quand je visite http://foo.com , je m'attends à ce qu'Apache fasse une demande à https://bar.com et m'envoie la page qu'il a récupérée .

Au lieu de cela, j'obtiens une erreur 500 et dans le journal des erreurs, je vois:

[error] proxy: HTTPS: failed to enable ssl support for 4.3.2.1:443 (bar.com)

Je suppose qu'il me manque une directive ici. Quel pourrait-il être?

Peu importe les implications pour la sécurité. Je comprends parfaitement les risques.

61
tylerl

Tu auras besoin mod_ssl, mod_proxy et éventuellement mod_rewrite. En fonction de votre distribution et de la version d'Apache, vous devrez peut-être vérifier si mod_proxy_connect et mod_proxy_http sont également chargés.

Les directives pour activer la prise en charge du proxy SSL sont dans mod_ssl:

<VirtualHost 1.2.3.4:80>
    ServerName foo.com
    SSLProxyEngine On
    SSLProxyCheckPeerCN on
    SSLProxyCheckPeerExpire on
    ProxyPass / https://secure.bar.com
    ProxyPassReverse / https://secure.bar.com
</VirtualHost>

IIRC vous pouvez également utiliser:

    RewriteRule / https://secure.bar.com [P]    # don't forget to setup SSLProxy* as well
76
Sam Halicke

Dans Apache 1.x, mod_ssl corrigerait ProxyPass. As-tu mod_ssl installée?

2
Jim Zajkowski