我想通过非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
在Apache 1.x中, mod_ssl
会修复ProxyPass。 你有没有安装mod_ssl
?