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.


¿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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.