IE6 及更高版本在 HTTPS 处理方面的差异

IE6 及更高版本在 HTTPS 处理方面的差异

直接回答问题:是否有任何好的资源可以详细了解 IE6 和 IE7 之间的变化,特别是可能导致 IE6 无法连接到基于 IIS7(Windows 2008)的 Web 服务器上的 HTTPS 资源?我们的假设是服务器只接受 IE6 无法应对的较新协议版本/变体,但我们找不到可以配置的位置。

长话短说:

我们在运行客户端应用程序的几台 Web 服务器上遇到了问题。由于客户端让渗透测试人员检查配置,导致大量本地策略更改和其他注册表设置发生变化,因此 Internet Explorer 6 拒绝通过 HTTPS 连接到站点(报告的错误是默认的“找不到服务器或 DNS 错误”消息)。IE7 和 IE8 都很好,我们尝试过的其他浏览器也很好(Windows 上的 FireFox、Ubuntu 上的 FF、链接等),但这是一个没有实际意义的问题,因为许多用户或多或少只使用 IE6。IE6 很乐意通过 HTTP 访问相同 IIS 安装上的相同资源。

通过查看记录的更改,我们没有发现任何明显的原因,甚至将所有更改应用到我们的一台测试服务器上也不会产生问题,其中一个更改是关于引入非本地策略,所以我怀疑问题就出在这里。

我无法通过搜索找到任何有用的信息(许多网站记录了如何在 Web 服务器上执行最基本的 SSL 配置并获取客户端应用程序信任的证书等,但显然没有任何与此问题相关的词),在扫描 Microsoft 的 Web 服务器的本地策略文档时也没有任何明显的内容引起我的注意。

不幸的是,告诉客户从 IE6 升级不是一个选择。我不愿意告诉他们只需重建 Web 服务器,并在下次单击时更加小心,但这可能已经成为我们的建议……

答案1

您是否已经嗅探过 IE6 和 IIS 机器之间的客户端到服务器握手?(http://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_handshake_in_detail) 我怀疑这会给你提供关于哪里出了问题的第一点信息,特别是如果你将握手与基于 IE7 的客户端到服务器对话进行比较。我猜想这是因为握手不兼容。

以下是微软“官方”的“IE 7 中对 HTTPS 的更改”文档:http://msdn.microsoft.com/en-us/library/bb250503(VS.85).aspx

我对 IE6 客户端“高级”设置中的“使用 TLS 1.0”复选框感到疑惑。IE7 默认启用 TLS 1.0,而 IE6 禁用它。目前尚不清楚您客户的渗透测试人员是否在服务器、客户端或两者上调整过设置。我可以想象,假设他们在调整服务器,他们在服务器上禁用了 SSL v2(请参阅http://support.microsoft.com/kb/187498),但没有告诉任何人在 IE6 客户端上启用 TLS 1.0。

在服务器上,他们会更改/创建“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server”下的“Enabled”DWORD 值并将其设置为 0,假设他们确实禁用了 SSL v2。

答案2

作为追踪错误来源的测试:通过 webbrowser 控件的连接是否有效?例如,您可以使用 iMacros Browser 30 天试用版进行此测试。它使用与 IE 相同的引擎,但使用不同的包装器。

相关内容