无法在TLS 1.2客户机上使用密码套件

无法在TLS 1.2客户机上使用密码套件

问题描述:

我有2台桌面机(Windows 7)。一个是我的开发机器,另一个是我的测试机器。我做了一个桌面应用程序。它使用Web请求连接服务器。我正在使用TLS1.2进行连接,HTTPClient(C#)已用于编码级别。无法在TLS 1.2客户机上使用密码套件

我的问题是,服务器期待TLS1.2连接,并只允许密码套装TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384。现在我的开发机器(它也有相同的操作系统,即Windows 7和相同的.Net框架4.6.1)工作正常,而我的测试机器没有。

为了进一步挖掘它,我收集了wireshark的日志,我可以看到,在“客户端问候语”和“服务器问候语”之后我可以看到一台机器,它启动密码规范交换,但它不会在测试机器中发生。

我也试着看到密码套装的列表,看起来这个套件在两台机器上都可用。然而,我的测试机器中密码套装的数量较少(可能是缺少自动更新的情况)。我在这里附上了所有屏幕截图。有人可以指导我这里出了什么问题。

截屏的工作机: - For working machine

Cypher suit list for woking machine

这是不是问题的答案,但我需要发布其他这是非常需要我的问题2的屏幕截图。

For my testing machine where it is not working

List of cypher suit where it is not working

如果这里是任何其他方式张贴有关这些链接,我会很乐意。

我遇到了类似的问题,我想可能是,试图连接到需要TLS 1.2的服务......我的记忆很模糊,但我相信我的开发计算机没有问题,我故意禁用了注册表中的TLS 1.2以外的所有内容。但是从不同的机器,它不会连接,因为HTTPClient在默认情况下试图使用ssl3。我必须先做到这一点:

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;