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.

tylerl
fonte
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
Sam Halicke
fonte
2

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

Jim Zajkowski
fonte