Apache ProxyPass dengan SSL

59

Saya ingin mem-proxy permintaan dari situs SSL melalui situs non-SSL. Apache httpd.conf saya terlihat seperti ini:

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

Jadi, ketika saya mengunjungi http://foo.com , saya berharap apache membuat permintaan ke https://bar.com dan mengirimkan saya halaman yang diambilnya.

Sebaliknya, saya mendapatkan 500 kesalahan, dan di log kesalahan, saya melihat:

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

Agaknya saya kehilangan petunjuk di sini. Yang mana mungkin?

Jangankan implikasi keamanannya. Saya sepenuhnya memahami risikonya.

tylerl
sumber
Versi Apache apa yang Anda gunakan?
Sam Halicke
1
"Jangan pedulikan implikasi keamanannya. Aku sepenuhnya mengerti risikonya." - Ini adalah setara devops dari "Hold My Beer"; )
Eric Kigathi

Jawaban:

71

Anda akan membutuhkan mod_ssl, mod_proxydan secara opsional mod_rewrite. Tergantung pada distribusi dan versi Apache Anda, Anda mungkin harus memeriksa apakah mod_proxy_connectdan mod_proxy_httpdimuat juga.

Arahan untuk mengaktifkan dukungan proxy SSL ada di 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 Anda juga dapat menggunakan:

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

Di Apache 1.x, mod_sslakan memperbaiki ProxyPass. Apakah Anda sudah mod_sslmenginstal?

Jim Zajkowski
sumber