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.


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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.