具有SNI的Apache HTTPS反向代理,代理上没有密钥

时间:2014-06-09 17:53:20

标签: apache ssl proxy virtual-hosts sni

example1.com和example2.com解析为host0。 host0运行带有两个VirtualHost的Apache反向代理。它将example1.com的请求委托给host1,将example2.com的请求委托给host2。

在所有地方使用http,显然可以使用。

使用https,我可以在example0上粘贴example1.com和example2.com的密钥,然后让host0与host1和host2通话http或https。鉴于SNI,这也应该有效。

我的问题:如果没有host0.com上的example1.com或example2.com密钥,它可以工作吗?我想避免host0能够执行中间人攻击。

如果我正确理解SNI,则仅在客户端将所需的虚拟主机传送到host0之后才交换密钥材料。这应该是(?)足够的信息,以便Apache基本上转发到host1或host2的连接,而根本不查看传输的内容。这根本不需要关键材料。

2 个答案:

答案 0 :(得分:2)

您真的需要Apache反向代理,还是需要解决问题?我遇到了同样的问题,我在tcp模式下使用HAProxy解决了这个问题,如http://blog.haproxy.com/2012/04/13/enhanced-ssl-load-balancing-with-server-name-indication-sni-tls-extension/所述,而不是Apache反向代理。

答案 1 :(得分:0)

如果您不介意使用Nginx或HAProxy代替Apache,则可以在ServerFault的以下问题上找到好的答案: