我们有几个 Windows 2012 机器在 AWS ELB 后面运行 IIS 8。在最近的一次重启中,当通过 ELB 连接时,我们无法通过 Web 浏览器访问这些服务器。如果我们直接处理这些机器,它就可以正常工作。起初我们以为这是 ELB 问题,但亚马逊尚未确认他们这边存在任何问题。
来自浏览器的连接是 SSL,终止于 ELB,但由于旧应用程序的限制,ELB 会与运行 IIS 的 EC2 实例建立第二个 SSL 连接。如果我们修改 ELB 以使用 TCP,而不是 HTTPS,我们会丢失 X-Forwarded-For 标头,但我们会从 ELB 获得与 Web 服务器的连接。这足以让我们重新投入运营,但并不理想。
为了测试,我们启动了第二个测试 ELB,并像原始 ELB 一样对其进行了配置。我们将 Web 服务器添加到两个 ELB 中。如果我们通过第一个 ELB(经过修改 - 使用 TCP 而不是 HTTPS 并且没有 XFF)访问服务器,它会正常工作。如果我们通过第二个 ELB(未投入生产,但我们希望最终配置它)访问服务器,它会再次失败。我们还启动了一个运行 2012 的原始 IIS 盒并安装了我们的证书。当我们从第二个 ELB 后面移除有问题的盒子并放入原始 IIS 盒时,它实际上可以正常工作(不知道为什么)。构建一个功能齐全的 Web 服务器是一个相当费力的过程,所以如果可能的话,我只想让旧的服务器重新上线。
Qualys SSL Lab 对有问题的设备和新的(正常工作的)IIS 设备进行了扫描,结果几乎相同:SSL v2 和 v3 已禁用,TLS 1、1.1 和 1.2 已启用
亚马逊建议我们用 Wireshark 来判断问题。我已将屏幕截图附在下面。
有效的一个: https://i.stack.imgur.com/JeG73.png(需要 10 个代表才能将图像放入内联 - 抱歉)
破损的那个: https://i.stack.imgur.com/6e37V.png
我不太清楚如何解释这一点,但看起来 SSL 连接在断开的情况下从未被协商过。
有任何想法吗?
首先十分感谢!
答案1
事实证明,这是最近的 Microsoft 补丁 (KB 2992611) 的问题。我们回滚了补丁,一切正常。请参阅此处的文章以获取更多信息:
http://www.zdnet.com/article/microsoft-warns-of-problems-with-schannel-security-update/