我试图了解为什么特定的负载平衡器-> Web服务器配置有效,所以请允许我绘画。
我有一个F5负载平衡器(LB),它将流量传递到Web服务器(WSvr)。 WSvr正在运行IIS 8。
LB拥有自己的SSL证书,即https://www.example.com。 WSvr具有单独的SSL证书,即https://myWebServer.example.com。
我希望这个LB-> WSvr配置失败,但是它确实有效,我真的不明白为什么。它不仅起作用,而且我还可以对WSvr上托管的Web应用程序进行身份验证,这意味着会话始终保持活动状态。
我认为,如果您选择在LB和WSvr上使用证书,则必须在两台计算机上都安装相同的证书。也就是说,LB IP地址和WSvr IP地址必须映射到相同的DNS名称,即www.example.com。没有两个完全独立的证书。 (在我的情况下,LB映射到www.example.com。而WSvr映射到myWebServer.example.com。)LB如何与WSvr对话并使会话保持活动状态?
这就是我用上述场景描述一个典型请求的方式(根据实际情况显然是不正确的,但是它说明了我认为它会失败的原因):
获取https://www.example.com/login.html
LB通过LB的SSL证书加密www.example.com/login.html并将其传递给WSvr
SSL已从请求中删除,从而终止了会话。 WSvr使用其自己的SSL证书对其进行重新加密,从而创建一个新会话。
如果有人能启发并引导我走上正确的道路,并解释为什么我不正确以及上述配置为何有效,我将不胜感激。
非常感谢您的宝贵时间。
最佳答案
这里的关键是有两个单独的连接(会话),因此有两个单独的SSL握手,一个在客户端和LB之间,另一个在LB和后端之间。第一次握手验证客户端要连接到https://www.example.com,第二次握手验证LB要连接到https://myWebServer.example.com。没有SSL的“剥离”。客户端发送的每个请求都通过两个连接,因此实际上,它被加密了两次。
关于ssl - 使用两个单独的SSL证书配置F5负载平衡器和IIS Web服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40120422/