[C#]C#出现未能创建SSL/TLS安全通道解决方法

C#偶尔出现“未能创建SSL/TLS安全通道”

背景:我们公司的NGINX不支持SSLv2和SSLv3,所以当前端使用这两个的时候,就会出现“未能创建SSL/TLS安全通道”问题。

一、解决前端

修改C#代码,在使用HttpWebRequest前先执行以下代码

//指定使用Tls

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

//忽略证书验证
ServicePointManager.ServerCertificateValidationCallback = ((object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) => true);

这个时候,你已经解决了绝大部分电脑的这个问题。

但是!!!会有部分电脑还有出现此问题,多是旧版win7和win10。

那么如何解决呢?

二、解决旧版本win10(内部版本10240)出现“未能创建SSL/TLS安全通道”

修改NG配置,主要是指定加密算法兼容旧系统

ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA;
ssl_prefer_server_ciphers off;

但是这里还是解决不了,还是偶尔出现,还需要添加以下才能解决

ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
ssl_session_tickets off;

暂不明原因,有大神请指点指点。

这个时候,已经是解决了(内部版本10240)出现“未能创建SSL/TLS安全通道”的问题。

但是!!!是不是还漏了旧版win7。

那么如何解决呢?

三、解决旧版本win7出现“未能创建SSL/TLS安全通道”

1、安装.net framework 4.8

到此,已经解决了99%的电脑了,剩下1%就是不能安装.net framework 4.8的win7系统了,还望大神指点指点一下该如何解决。

感谢大家阅读,如果觉得还不错,不妨点个赞。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FL1623863129

你的打赏是我写文章最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值