TLS 1.3 客户端和服务器无法通信,因为它们不具备通用算法

问题描述 投票:0回答:1

我无法再使用 c# WebClient.DownloadFile() 或 HttpClient.ReadAsStreamAsync() 下载公开可用的文件。 我可以使用 Chrome 或 Firefox 手动下载。

网站升级到 TLS 1.3,我的程序之前使用 TLS 1.2。 返回的第一个错误是“无法建立 SSL/TLS 安全通道”。 TLS 1.3 不是 .Net 中定义的枚举,因此我从 .Net v4.78 升级到 v4.80,为 ServicePointManager.SecurityProtocol 和 HttpHandler.SslProtocols(对于 HttpClient)指定 TLS 1.3 协议。该操作已经通过了安全通道错误,现在我陷入了常见算法错误。

Chrome 显示该网站使用 TLS 1.3 和 X25519 以及 AES_128_GCM。我的理解是X25519是密钥交换,算法是AES_128_GCM。 我运行了 PowerShell 命令“get-TlsCipherSuite”,它首先显示密码 TLS_AES_256_GCM_SHA384,然后显示 TLS_AES_128_GCM_SHA256。这是协议 772 仅有的 2 个密码,现在在 Windows 10 中默认启用。我相信这个十进制数表示 TLS 1.3 (0x0304)。 该网站由 Apache 提供支持,证书显示算法 SHA256RSA。

ssl encryption x25519
1个回答
0
投票

最近我遇到了同样的问题。以下步骤帮助我解决了这个问题。

  1. 在发出 http 请求的客户端/系统上启用 TLS1.3。我按照 Windows Server 2022 的此博客启用了 TLS1.3:https://thesecmaster.com/blog/how-to-enable-tls-1-3-on-windows-server-2022
  2. 如果仍然出现错误,请检查发出 http 请求的服务器/系统中启用的密码套件。 TLS1.3 支持 TLS_AES_256_GCM_SHA384 、 TLS_AES_128_GCM_SHA256 密码套件。我按照此博客启用了这些密码套件:https://michaelhowardsecure.blog/

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.