带有SNI的Apache HTTPS反向代理无代理上的密钥

example1.com和example2.comparsing为host0。 host0用两个VirtualHosts运行一个Apache反向代理。 它将example1.com的请求委托给host1,example2.com委托给host2。

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

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

我的问题:是否可以在没有host0上的example1.com或example2.com密钥的情况下工作? 我想避免host0有能力进行中间人攻击。

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

你真的需要Apache的反向代理,或者你需要解决的问题? 我有同样的问题,我用tcp模式下的HAProxy解决它,如这里所述http://blog.haproxy.com/2012/04/13/enhanced-ssl-load-balancing-with-server-name-indication-sni -tls-extension /而不是Apache反向代理。