.net - IE 与 Chrome 证书处理,以及 XP 与 Windows 7 上的 SSL 通信

标签 .net windows-7 ssl windows-xp ssl-certificate

当我使用 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 的一些默认设置。

  1. 选中“高级 > 安全”,使用 SSL 3.0 和 TLS 1.0。
  2. 还有安全自定义级别的 Internet 区域。

已更新

您的问题可能是您的 Web 服务器支持的密码与 Windows XP 的功能不匹配。如果 Windows XP IE8 请求您的 Web 服务器不允许的密码,您将无法完成握手。

Windows XP 支持的密码列表在这里 http://msdn.microsoft.com/en-us/library/aa380512(v=vs.85).aspx .

  1. 要验证这一点,请 try catch 数据包。
  2. 要解决此问题,您可能必须在 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/

相关文章:

c# - 从多个工作线程 (.NET) 更新 UI

c# - 如何设置<Linebreak/>的高度

android - 如何在 WIndows 7 64 位上将 JDK 而不是 JRE 设置为默认 JVM?

C# 获取/设置 BIOS 设置?

ssl - 在 curl -k 中请求工作,但不在 Postman 中禁用 SSL

c# - 通过 .NET (C#) 发布 Google Plus

c# - 如何安全地使用 ADO.NET IDbConnection 和 IDbCommand 并发执行多个数据库命令?

.net - 将文本文件写入 C 时出现 UnauthorizedAccessException :\on Windows 7

ssl - 重命名 SSL 应用程序并消除 HTTP 访问

Java:以编程方式从 Trust Store 读取 SSL 证书信息