Apache-2.2
帶有 SSL 的 Apache ProxyPass
我想通過非 SSL 站點代理來自 SSL 站點的請求。我的 Apache httpd.conf 如下所示:
<VirtualHost 1.2.3.4:80> ServerName foo.com ProxyPass / https://bar.com/ </VirtualHost>
因此,當我訪問http://foo.com時,我希望 apache 向https://bar.com發出請求並將它獲取的頁面發送給我。
相反,我收到 500 錯誤,在錯誤日誌中,我看到:
[error] proxy: HTTPS: failed to enable ssl support for 4.3.2.1:443 (bar.com)
大概我在這裡遺漏了一個指令。可能是哪個?
別介意安全隱患。我完全理解其中的風險。
您將需要
mod_ssl
,mod_proxy
並且可以選擇mod_rewrite
. 根據您的發行版和 Apache 版本,您可能還需要檢查是否mod_proxy_connect
已mod_proxy_http
載入。啟用 SSL 代理支持的指令在 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:
RewriteRule / https://secure.bar.com [P] # don't forget to setup SSLProxy* as well