如何使用 Tls 1.3 处理 HttpWebRequest C#

How to handle HttpWebRequest C# with Tls 1.3

由于以下错误消息,我无法使用 WebRequest 连接到 HTTPS 服务器 (TLS 1.3):

请求被中止:无法创建 SSL/TLS 安全通道。

以前的 TLS 版本是 1.2,使用以下代码我可以正确获取页面,但是当页面 ssl 升级到 TLS 1.3 时,我收到了错误,而且我找不到任何解决方案:

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

其实我觉得应该是这样的:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls13;

但是没有。

看起来 TLS13 现在作为 4.8 .Net Framework 的一部分得到支持

https://docs.microsoft.com/en-us/dotnet/api/system.net.securityprotocoltype?view=netframework-4.8

然而,它仅在较新的 Window 的 OS 版本(windows 11 和服务器 2022+)上受支持,请参阅 here 了解完整的支持详细信息。