您如何判断 Windows 服务器 2008R2 上使用的 TLS 1.2 密码版本

How can you tell what cipher version is used on Windows server 2008R2 for TLS 1.2

有人告诉我 https 端点支持以下密码:

TLS 1.2(服务器首选顺序的套件)

  • TLS1.2_ECDHE_RSA_AES_128_GCM_SHA256
  • TLS1.2_DHE_RSA_AES_256_GCM_SHA384
  • TLS1.2_DHE_RSA_AES_128_GCM_SHA256

我在 C# (.Net Framework 4.7.2) 运行 Windows Server 2008R2 上有一个 Windows 服务,它将尝试通过 HttpClient PostAsync 到达 https 端点打电话。

如何判断是否在 Win2008r2 上启用了任何密码以及将使用哪些密码?

我必须声明的奇怪之处在于,在我的开发机器 (Win10 x64) 上,我可以毫无问题地访问 https 端点。 我在 Win2008r2 服务器上设置了适当的防火墙例外。

我一直在努力解决这个问题,检查了 Win2008r2 上的各种注册表项,并在我的代码库中尝试了 ServicePointManager.SecurityProtocol(默认、Tls12 等)的各种设置。

这是另一个尝试弄清楚为什么我的 Win10 开发机器可以工作而 Win2008R2 不工作的努力。
顺便说一句,这是我从 Win2008r2 服务器得到的错误:

No connection could be made because the target machine actively refused it xxx.xxx.xx.xxx:443

感谢 Crowcoder 指出之前关于 .Net Tracing 的文章。我将这两个类包含在我的代码中,并且能够清楚地看到跟踪和我正在使用的 tls 版本:

System.Net Information: 0 : [25532] ConnectStream#62696216::ConnectStream(Buffered -1 bytes.) System.Net Information: 0 : [25532] Associating HttpWebRequest#36963566 with ConnectStream#62696216 System.Net Information: 0 : [25532] Associating HttpWebRequest#36963566 with HttpWebResponse#31071611 System.Net Information: 0 : [25532] ContentLength=-1 System.Net Information: 0 : [25532] TlsStream#63566392::.ctor(host=xxx.yyyyzzz.com, #certs=0, checkCertificateRevocationList=False, sslProtocols=Default, Tls12) System.Net Information: 0 : [25532] Associating HttpWebRequest#57416410 with ConnectStream#24004906 System.Net Information: 0 : [25532] HttpWebRequest#57416410 - Request: POST /ImportAssignment HTTP/1.1