【发布时间】:2020-04-30 13:09:34
【问题描述】:
我在我们的一个项目中遇到了 SSL 握手问题。 需要 2 个说 SSL 证书。
安全协议设置为 TLS12(并与其他协议以及 TLS1、SSL3 一起测试),并且证书回调已正确完成。问题是代码可以在工作站上运行,但不能在任何服务器上运行(win 2008 或 2012)。
我们收到的错误是:The request was aborted: Could not create SSL/TLS secure channel.
我们实际上没有在任何服务器上获得任何服务器证书回调。
这是我们加载证书时的coden-p。我们正在使用 .NET 框架:
cert = new X509Certificate2("certpath", "pass", X509KeyStorageFlags.DefaultKeySet)
client.ClientCertificates.Add(cert);
从看来证书链是可以的,因为我们可以通过浏览器访问 WSDL。
求和:我们可以通过工作站访问端点,但不能通过服务器访问。但是可以从浏览器访问端点(在证书选择之后)
【问题讨论】:
-
使用 Wireshark 等工具捕获 TLS 握手包,然后比较不同的场景。对于 Windows Server 2008(R2 或非 R2)来说,这是很正常的,因为它已停产。 Windows Server 2012及以上版本需要仔细检查Client Hello/Server Hello。
标签: .net ssl-certificate tls1.2