Apache-2.2

帶有 SSL 的 Apache ProxyPass

  • October 6, 2018

我想通過非 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_sslmod_proxy並且可以選擇mod_rewrite. 根據您的發行版和 Apache 版本,您可能還需要檢查是否mod_proxy_connectmod_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

引用自:https://serverfault.com/questions/84821