我有 .NET 2.0 Windows 窗体应用程序,它发出 HttpWebRequest 从安全的 HTTPS 服务器下载文件。这已在 3-4 个完全独立的网络上完美运行。
我的客户端需要在非常受限的安全网络上运行它。只有经过授权的人员才能进入该网络。我们被允许安装和测试该应用程序的联络测试员报告说它因以下错误而失败:
The request was aborted: Could not create SSL/TLS secure channel.
使用 wireshark,他能够看到发生了三个 SSL 握手中的两个。知道为什么第三个不会发生吗?
他能够从 IE 中成功点击下载链接并下载文件,这让我相信权限设置正确。
在我的应用程序中,我设置了几个 ServicePoint 属性:Expect100Continue = true 并需要 SSL3。此外,我已将验证回调设置为始终返回 true(接受所有证书)。知道为什么应用程序无法建立 SSL 连接,但 IE 可以吗?
任何调试帮助都很棒。谢谢。
2012 年 3 月 7 日更新
添加了 System.Net 跟踪,这是我觉得很有趣的一段。算法不匹配。
我也遇到过这个问题。花了我很多时间......在我的例子中,我发现服务器想要通过证书颁发机构 (CA) 检查第三方的证书。只有 CA 的 ip 地址被防火墙阻止了。这一切都发生在握手期间,并给我带来了同样的错误信息。
我是一名优秀的程序员,十分优秀!