2017-02-24 145 views
0

在开始之前,我知道正确的做法是升级操作系统。我试图解决这个问题,正如你可能想象的那样,有很多死路一条。我发现了一些似乎可行的东西,但我并不清楚为什么要专门寻找一些帮助。试图在XP sp3上使用.net 4.0运行TLS1.2

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 4Source 5

如果您使用您自己的证书 验证它覆盖ServerCertificateValidationCallback它的作品。为什么?到底是怎么回事?它真的有用吗?它的 似乎通过SSL进行通信。网络操作保证我 服务器上没有回退SSL/TLS。

替代方案:获取自签名的证书为老年人TLS 1.0,不能让这个 从CA了
使用其他C++库或类似支持TLS 1.2 和.NET

更新1叫它: 我仍然不知道为什么ServerCertificateValidationCallback似乎工作。现在我正在查看特定XP SP3支持的密码套件。我正在查看数据包并使用本文作为指导。正如所指出的那样,即使我找到一个替代库,如果密码套件没有被提供或接受,我仍然没有解决方案。

cipher suite guide

我曾尝试SecureBlackBox取得了一些成功(是TLS1.2),但我无法得到它的授权来自证书权威的证书。 https://www.eldos.com/sbb/

更新2:学习了很多如何工作谢谢先生Ullrich et。人。

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

+0

请让XP死亡。不要浪费你的时间和其他人的时间。 –

+2

这很有帮助谢谢。 –

回答

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

+0

那么它是通信SSL/TLS?如果是的话是什么版本?它是SHA256吗?我的理解是,您可以购买SHA256和TLS 1.2可以处理它的证书和TLS 1.0无法使用的证书。我错过了什么与这些无关的?我会看看你提到的链接,谢谢! –

+0

@JoeVolcano:*“我的理解是,您可以购买SHA256和TLS 1.2可以处理它的证书和TLS 1.0无法使用的证书。”* - 这种理解是错误的。此外,证书实际上独立于TLS版本。您也可以使用带有TLS 1.0的SHA-256签名证书。任何限制只取决于实际的实施,而不是协议。 –

+0

因此,我应该能够使用SHA 256的新证书,并配置我的服务器以允许TLS 1.0以及TLS 1.2,并且我可以与运行在xp Service Pack上的.net 4.0(TLS 1.0)模块进行正常的SSL通信3? –