在开始之前,我知道升级操作系统是正确的。我正在努力解决这个问题,你可能会想到有很多死路一条。我找到了似乎有用的东西,但我不明白具体原因并寻求帮助。
Windows XP不支持SSL / TLS 1.1 / 1.2
Source 1
Source 2
.Net 4.0不支持TLS 1.2
Source 3
.Net 4.5+确实支持TLS 1.2但不能安装在XP上 Source 4 Source 5
如果使用自己的证书覆盖ServerCertificateValidationCallback 验证它有效。为什么?到底是怎么回事?它真的有效吗?它的 似乎是通过SSL进行通信。网络运营向我保证 服务器上没有回退SSL / TLS。
替代方案:获取旧版TLS 1.0的自签名证书,无法获得此信息 来自CA了 使用支持TLS 1.2的其他C ++库或类似库 并从.NET调用它
更新1: 我仍然不知道为什么ServerCertificateValidationCallback似乎工作。现在我希望看看具体的XP SP3支持哪些Cipher Suite。我正在查看数据包并使用本文作为指南。正如所指出的那样,即使我没有提供或接受密码套件我找到了另一个库,我仍然没有找到解决方案。
我确实尝试过SecureBlackBox取得了一些成功(是TLS1.2),但是我无法通过认证机构授权证书。 https://www.eldos.com/sbb/
更新2:了解其工作原理谢谢Ullrich先生等。人
更新3:此时我正在寻找在XP机器上使用Apache代理来执行TLS1.2 SHA256 CA验证通信(非Windows堆栈)并使用我的.net 4.0通信与本地代理进行通信(在机器上),任何离开机器的通信都得到了妥善保护。
答案 0 :(得分:0)
证书和证书验证与TLS版本无关。您可以使用与SSL 3.0相同的证书... TLS 1.3。但仅仅因为您的证书可以与所有这些一起使用,并不会使您的本地TLS堆栈神奇地了解TLS 1.2协议的工作原理。
如果您希望Windows XP上的TLS 1.2支持在Windows TLS堆栈之外,请查看OpenSSL,NSS和其他库。看起来有一个库支持.NET中最近的OpenSSL,但我不确定它是否仍然适用于XP。请参阅https://github.com/openssl-net/openssl-net。