Apache ProxyPass con SSL

59

Quiero proxy de solicitudes de un sitio SSL a través de un sitio que no sea SSL. Mi httpd.conf de Apache se ve así:

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

Entonces, cuando visito http://foo.com , espero que apache haga una solicitud a https://bar.com y me envíe la página que obtuvo.

En cambio, obtengo un error 500, y en el registro de errores, veo:

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

Presumiblemente me estoy perdiendo una directiva aquí. ¿Cuál podría ser?

No importa las implicaciones de seguridad. Entiendo completamente los riesgos.

tylerl
fuente
¿Qué versión de Apache estás usando?
Sam Halicke, el
1
"No importa las implicaciones de seguridad. Entiendo completamente los riesgos". - Este es el equivalente devops de "Hold My Beer"; )
Eric Kigathi

Respuestas:

71

Necesitarás mod_ssl, mod_proxyy opcionalmente mod_rewrite. Dependiendo de la distribución y la versión de Apache puede que tenga que comprobar si mod_proxy_connecty mod_proxy_httpse cargan también.

Las directivas para habilitar el soporte de proxy SSL están en 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 también puede usar:

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

En Apache 1.x, mod_sslarreglaría ProxyPass. Tienes mod_sslinstalado?

Jim Zajkowski
fuente