69 votes

Apache ProxyPass avec SSL

Je veux faire passer les requêtes d'un site SSL par un site non-SSL. Mon httpd.conf Apache 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 requête vers https://bar.com et envoyez-moi 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)

J'ai probablement manqué une directive ici. Laquelle ?

Peu importe les implications en matière de sécurité. Je comprends parfaitement les risques.

91voto

gfrizzle Points 4518

Vous aurez besoin de 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 y mod_proxy_http sont également chargés.

Les directives permettant d'activer le support du proxy SSL se trouvent 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

2voto

Charles Caldwell Points 368

Dans Apache 1.x, mod_ssl permettrait de réparer ProxyPass. Avez-vous mod_ssl installé ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X