请求已中止:无法创建SSL / TLS安全通道 - SecurityProtocol行为

时间:2012-12-18 09:57:47

标签: c# .net ssl-certificate ssl

将证书安装到Local Computer存储Trusted Root Certification Authorities之后,.NET WebRequest仍会抛出:

The request was aborted: Could not create SSL/TLS secure channel

ServicePointManager.SecurityProtocol现在包含SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls

在阅读SimonDugré的回答https://stackoverflow.com/a/2904963/121968后,我已经设定了:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

一切正常。 回头后:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls;

它仍然正常工作。我有两个问题:

  1. 为什么它仍然有效?有没有缓存?

  2. 为什么以前只使用旗帜Ssl3而不是 同时使用Ssl3Tls

2 个答案:

答案 0 :(得分:1)

有SSL / TLS会话恢复,可能就是你的情况。 也许你没有共享的TLS1密码套件。 检查的最佳方法是运行Wireshark,并查看连接的SSL数据包,它们在Wireshark中有很好的解释。

答案 1 :(得分:0)

我的解决方案是添加以下行:

 ServicePointManager.Expect100Continue = True
 ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 Or SecurityProtocolType.Tls