Apache ProxyPass avec SSL

59

Je souhaite utiliser les requêtes d'un site SSL via un site non SSL. Mon httpd.conf Apache ressemble à ceci:

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

Ainsi, lorsque 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, je reçois 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)

Vraisemblablement, il me manque une directive ici. Ce qui pourrait être?

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

tylerl
la source
Quelle version d'Apache utilisez-vous?
Sam Halicke
1
"Peu importe les implications pour la sécurité. Je comprends parfaitement les risques." - Ceci est l'équivalent de devops de "Hold My Beer"; )
Eric Kigathi

Réponses:

72

Vous aurez besoin mod_ssl, mod_proxyet facultativement mod_rewrite. En fonction de votre distribution et de la version d'Apache, vous devrez peut-être vérifier si mod_proxy_connectet mod_proxy_httpsont également chargés.

Les directives pour activer le support 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
Sam Halicke
la source
2

Dans Apache 1.x, mod_sslréparerait ProxyPass. Avez-vous mod_sslinstallé?

Jim Zajkowski
la source