当我使用 IE 和/或依赖 wininet 访问外部世界的程序时,我遇到了一个关于 XP 和 Windows 7 上不同证书处理的奇怪问题(与 this problem 相关)。
1) 当您在 XP 和 IE8 上尝试连接到 this site 时, IE 拒绝显示“无法显示该网页”消息。
2) 如果我在 XP 上使用 Chrome(同一页面),它会出现“选择一个证书来验证你自己......”*,我可以选择一个客户端证书。
3) 如果我尝试在 Windows 7 上重复此操作,在 IE8 中我会看到用于选择证书的 Windows 安全对话框。
4) Chrome 在步骤 3 中出现与 IE 相同的对话框。
我怀疑安全设置或组策略,但我有点卡住了。 您对如何通过 IE8 使其在 XP 上运行有任何想法吗?
最佳答案
检查 Windows XP 上的 IE8 设置。大约一年前有一个更新影响了 Windows XP 下 IE 的一些默认设置。
- 选中“高级 > 安全”,使用 SSL 3.0 和 TLS 1.0。
- 还有安全自定义级别的 Internet 区域。
已更新
您的问题可能是您的 Web 服务器支持的密码与 Windows XP 的功能不匹配。如果 Windows XP IE8 请求您的 Web 服务器不允许的密码,您将无法完成握手。
Windows XP 支持的密码列表在这里 http://msdn.microsoft.com/en-us/library/aa380512(v=vs.85).aspx .
- 要验证这一点,请 try catch 数据包。
- 要解决此问题,您可能必须在 Web 服务器的 Schannel 注册表项中启用额外的密码。参见 http://support.microsoft.com/kb/245030并逆向说明以启用 Windows XP 支持的密码。我知道这并不理想,并且有充分的理由禁用它们。
这在 Chrome 下不是问题,因为它不使用 Windows 加密提供程序。自然,较新版本的 Windows 支持这些。
关于.net - IE 与 Chrome 证书处理,以及 XP 与 Windows 7 上的 SSL 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7389973/