Apache ProxyPass com SSL


59

Desejo fazer solicitações de proxy de um site SSL por meio de um site não SSL. Meu httpd.conf do Apache fica assim:

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

Portanto, quando visito http://foo.com , espero que o apache faça uma solicitação para https://bar.com e me envie a página que ele buscou.

Em vez disso, recebo um erro 500 e, no log de erros, vejo:

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

Presumivelmente, estou perdendo uma diretiva aqui. Qual poderia ser?

Não importa as implicações de segurança. Eu entendo completamente os riscos.


Qual versão do Apache você está usando?
— Sam Halicke 15/11/2009

11
"Não importa as implicações de segurança. Eu entendo completamente os riscos." - Este é o equivalente devops de "Hold My Beer"; )
— Eric Kigathi 13/11/19

Respostas:


71

Você precisará mod_ssl, mod_proxye opcionalmente mod_rewrite. Dependendo da sua distribuição e versão Apache você pode ter que verificar se mod_proxy_connecte mod_proxy_httpsão carregados também.

As diretrizes para ativar o suporte ao proxy SSL estão em 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 você também pode usar:

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

2

No Apache 1.x, mod_sslseria corrigido o ProxyPass. Você mod_sslinstalou?

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.