gpt4 book ai didi

c# - 如何在 Windows XP 上的 .Net 4 中向禁用 SSL3 的服务器发出 TLS 请求?

转载 作者:太空狗 更新时间:2023-10-30 01:18:38 26 4
gpt4 key购买 nike

我支持一个使用 .Net 4.0 (Visual Studio 2010) 构建的 Windows 应用程序,它连接到我们的 Apache 网络服务器上的各种网络服务。由于 Poodle 错误,这些服务器上已禁用 SSL3。该应用程序的更新版本正在使用启用了 TLS 的 WebClient 类,并且可以成功连接:

using (var client = new WebClient())
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;

client.DownloadString(uri);
}

然而,并不是我们的客户坚持使用 Windows XP(不幸的是,强制他们升级操作系统是不可能的)。我可以重现他们无法建立 SSL/TLS channel 的错误报告。

即使禁用证书检查(仅用于测试目的)也无济于事:

     ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

根据我的研究,我知道 Windows XP 和 .Net 4.0 支持 TLS 1.0,所以理论上这应该仍然是可能的。由于抛出的异常中提供的信息很少,我无法找出到底是什么失败了。

这可能是服务器配置的问题吗?

示例网址:https://api.meteotest.ch/ssl.txt

最佳答案

MSDN您会发现 Windows XP 支持的密码套件。这表明 XP 不支持任何 AES 密码套件。但是,如 SSLLabs 所示您的服务器支持的所有密码都是 AES。因此,客户端和服务器之间没有通用密码,SSL 握手将失败,这在 SSLLabs 的输出中也针对 XP 显示。

由于 RC4 也已损坏,因此我不建议使用任何 RC4 密码。因此最好启用 3DES 密码以支持 XP 客户端,即 TLS_RSA_WITH_3DES_EDE_CBC_SHA(apache 配置中的 DES-CBC3-SHA)。当然你应该把这个密码放在最后,所以只有当客户端不支持任何其他密码时才会使用它。

关于c# - 如何在 Windows XP 上的 .Net 4 中向禁用 SSL3 的服务器发出 TLS 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26506432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com