【Azure Developer】System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel.

问题描述

在Azure中,使用操作系统为Win Server 2019和Win Server 2012的虚拟机,同样代码可以链接同一个Azure Service Bus。Win2019 成功运行,但是在 Win2012上报错 :Could not create SSL/TLS secure channel.

 

问题解答

Win Server 2012默认不支持TLS1.2,可以通过安装 Update 3140245 以启用下面的注册表值,可以将其设置为将 TLS 1.1 和 TLS 1.2 添加到 WinHTTP 的默认安全协议列表

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp\
      DefaultSecureProtocols = (DWORD): 0xAA0
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp\
      DefaultSecureProtocols = (DWORD): 0xAA0

PS: 修改后,需要重启VM。

如果问题依旧,可以通过抓取网络包进行分析,是否是缺少了加密套件。

比如,服务器上支持的加密套件为 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 和TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, 而这两个加密套件在Win2012的机器上不支持。

 

鉴于此情况,可以修改服务端,使得它支持Win2012上的加密套件,或者是直接升级Win2012升级到2019或重建客户端虚拟机!

 

参考资料

如何在客户端上启用传输层安全性 (TLS) 1.2 :https://learn.microsoft.com/zh-cn/mem/configmgr/core/plan-design/security/enable-tls-1-2-client#bkmk_winhttp

posted @ 2024-10-22 19:40  路边两盏灯  阅读(17)  评论(0编辑  收藏  举报