尝试使用.net 4.0在XP sp3上运行TLS1.2

时间:2017-02-24 15:21:13

标签: c# .net ssl https windows-xp

在开始之前,我知道升级操作系统是正确的。我正在努力解决这个问题,你可能会想到有很多死路一条。我找到了似乎有用的东西,但我不明白具体原因并寻求帮助。

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。我正在查看数据包并使用本文作为指南。正如所指出的那样,即使我没有提供或接受密码套件我找到了另一个库,我仍然没有找到解决方案。

cipher suite guide

我确实尝试过SecureBlackBox取得了一些成功(是TLS1.2),但是我无法通过认证机构授权证书。 https://www.eldos.com/sbb/

更新2:了解其工作原理谢谢Ullrich先生等。人

更新3:此时我正在寻找在XP机器上使用Apache代理来执行TLS1.2 SHA256 CA验证通信(非Windows堆栈)并使用我的.net 4.0通信与本地代理进行通信(在机器上),任何离开机器的通信都得到了妥善保护。

1 个答案:

答案 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