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.


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

2

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.