我想通过非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)


大概我在这里缺少指令。可能是什么?

不要担心安全隐患。我完全了解风险。

评论

您正在使用哪个版本的Apache?

“别担心安全隐患。我完全理解风险。” -这相当于“持有我的啤酒”的devops; )

#1 楼

您将需要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


#2 楼

在Apache 1.x中,mod_ssl将修复ProxyPass。您安装了mod_ssl吗?