7

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

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

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

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

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

4

2 回答 2

2

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

于 2014-10-01T11:42:04.273 回答
0

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

于 2019-02-05T23:23:14.290 回答