带有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_sslmod_proxymod_rewrite 。 根据您的发行版和Apache版本,您可能需要检查是否加载了mod_proxy_connectmod_proxy_http

    启用S​​SL代理支持的指令位于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 

    在Apache 1.x中, mod_ssl会修复ProxyPass。 你有没有安装mod_ssl