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的连接,而根本不查看传输的内容。这根本不需要关键材料。
答案 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的以下问题上找到好的答案: