Apache ProxyPass con SSL


59

Desidero inoltrare richieste da un sito SSL tramite un sito non SSL. Il mio httpd.conf di Apache è simile al seguente:

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

Quindi, quando visito http://foo.com , mi aspetto che apache faccia una richiesta a https://bar.com e mi mandi la pagina recuperata.

Invece, ottengo un errore 500 e nel registro degli errori, vedo:

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

Presumibilmente mi manca una direttiva qui. Quale potrebbe essere?

Non importa le implicazioni sulla sicurezza. Comprendo appieno i rischi.


Quale versione di Apache stai usando?
Sam Halicke,

1
"Non importa le implicazioni per la sicurezza. Comprendo appieno i rischi." - Questo è l'equivalente devops di "Hold My Beer"; )
Eric Kigathi,

Risposte:


72

Avrete bisogno mod_ssl, mod_proxye opzionalmente mod_rewrite. A seconda della tua distribuzione e della versione di Apache potresti dover controllare se mod_proxy_connecte anche mod_proxy_httpessere caricati.

Le direttive per abilitare il supporto proxy SSL sono in 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 è inoltre possibile utilizzare:

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

2

In Apache 1.x, mod_sslavrebbe corretto ProxyPass. Hai mod_sslinstallato?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.