您现在的位置: 365建站网 > 365文章 > C#“请求被中止: 未能创建 SSL/TLS 安全通道”的解决方法

C#“请求被中止: 未能创建 SSL/TLS 安全通道”的解决方法

文章来源:365jz.com     点击数:10622    更新时间:2023-02-15 14:50   参与评论

"未能创建 SSL/TLS 安全通道" 的错误通常是由于客户端(例如浏览器或应用程序)无法建立与服务器的安全连接而引起的。

这种错误通常与以下问题有关:

  1. 安全证书问题:安全证书可能已过期、无效或不受信任。这可能是因为证书颁发机构(CA)不被信任,或者证书中包含的信息与实际情况不符。

  2. TLS/SSL配置问题:服务器的TLS/SSL配置可能不正确或过时,可能不支持客户端正在使用的加密协议或密码套件。

  3. 网络问题:可能存在网络问题,如防火墙阻止了连接、代理服务器配置不正确或DNS问题。

C# 中出现“请求被中止: 未能创建 SSL/TLS 安全通道”错误通常是由于您的代码中使用的默认协议是较旧的 SSL,而服务器要求使用更安全的 TLS 协议。要解决这个问题,您可以尝试以下方法:

  1. 使用较新的 TLS 协议:您可以通过设置 ServicePointManager.SecurityProtocol 属性来设置使用的协议。例如,您可以将其设置为 "SecurityProtocolType.Tls12",这将使用 TLS 1.2 协议来建立连接。

  2. 忽略证书验证:如果您知道您正在连接的服务器的证书是受信任的,您可以忽略证书验证。虽然这并不是最好的做法,但是可以通过设置 ServicePointManager.ServerCertificateValidationCallback 属性来实现。这将允许您手动验证证书,或者忽略证书错误。

  3. 更新 .NET Framework 版本:如果您使用的是旧版本的 .NET Framework,那么升级到较新版本可能会解决问题。在较新版本的 .NET Framework 中,默认的安全协议已经被更新为 TLS,因此您可能不会再遇到这个问题。

  4. 检查代理设置:如果您使用代理服务器连接到网络,则可能需要检查代理设置,以确保它们正确地处理 SSL/TLS 请求。

下面是一个示例代码片段,演示如何使用较新的 TLS 协议:

有两种方式


第一种:执行代码前,加上


 ServicePointManager.SecurityProtocol = (SecurityProtocolType)192 | (SecurityProtocolType)768 | (SecurityProtocolType)3072;


第二种,加上这一段也行,这两种方式,选一种即可,如果出错,项目请切换到net4.5以上


//http加载证书,ssl,如果出错,就切换到net4.5

ServicePointManager.Expect100Continue = true;

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

 //http加载证书,ssl,如果出错,就切换到net4.5

就可以正常获取https链接的内容了,或者下载带有https链接的文件了


可以解决:

C# 未能创建 SSL/TLS 安全通道

C# 出现基础连接已经关闭:接收时发生错误

C#无法请求https链接的内容


如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛

发表评论 (10622人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称:
最新评论
------分隔线----------------------------

快速入口

· 365软件
· 建站公司
· 杰创官网
· 建站工具

业务咨询

· 技术支持
· 服务时间:9:00-18:00
365建站网二维码

Powered by 365建站网 RSS地图 HTML地图

copyright © 2013-2022 版权所有 鄂ICP备17013400号