请求被中止: 未能创建 SSL/TLS 安全通道 解决方案
最近项目改造https,有部分请求出现“请求被中止: 未能创建 SSL/TLS 安全通道”。
原因应该是,接口方变更了安全协议,而客户端并未启用该协议。
解决办法自然就是:让客户端启用该协议。具体就是在发起网络请求之前确保ServicePointManager.SecurityProtocol中含有服务端所用的安全协议,如果不知道或希望客户端健壮一点,当然最简单的方式就是把所有可用的协议都启用,随你服务端将来怎么换。代码如下:
if (url.ToLower().StartsWith("https"))
 {
   ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 
              | SecurityProtocolType.Tls 
              | SecurityProtocolType.Tls11 
              | SecurityProtocolType.Tls12;
  }
上线后,发现部分接口请求还是会出现上面问题。
经过分析发现,
1.都是同一套架构,不会存在配置或其他问题。
2.接口有时可以有时不可以(初步怀疑有节点没部署上)
3.分析日志发现大部分都是请求时间长的接口返回的。
结论:
如果请求超时
http请求,会返回——> GatewayTimeout
https请求会返回——> 请求被中止: 未能创建 SSL/TLS 安全通道。
更新:
将一些超市接口异步执行,经过一段时间发现,SSL/TLS 问题还是会有出现
发现了还要加上下面这些配置
ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => true;
经过验证已经大大降低了,但还是没有杜绝。
如有更好的方案,欢迎沟通交流。
参考:https://smalltool.github.io/2020/08/24/Could-not-create-SSL-TLS-secure-channel/
请求被中止: 未能创建 SSL/TLS 安全通道 解决方案的更多相关文章
- 彻底解决:请求被中止: 未能创建 SSL/TLS 安全通道
		最近有个项目要调用客户用java写的带https的webservice,对方提供了证书文件 test.pfx,我这里调用方式如下: //webservice代理类 SvcService svc = n ... 
- 请求被中止: 未能创建 SSL/TLS 安全通道
		出现“请求被中止: 未能创建 SSL/TLS 安全通道.”的问题. 在创建请求地址的前面加了这句代码就可以了 System.Net.ServicePointManager.SecurityProtoc ... 
- C# 解决“请求被中止: 未能创建 SSL/TLS 安全通道”的问题
		最近在开发项目的时候,使用爬虫抓取网络数据的时候,当请求Web数据时,碰到了“请求被中止: 未能创建 SSL/TLS 安全通道”的问题,尝试过很多网上的方法,例如添加证书等都没有用.最后在GitHub ... 
- 请求被中止: 未能创建 SSL/TLS 安全通道,设置  TLSv1.2和TLSv1.1版本 .基础链接已经关闭,发送时发生错误
		WSO2 API访问的安全要求, 只能提供TLSv1.2和TLSv1.1版本,其它SSL版本协议因为存在较高安全漏洞问题会被disable. A 改成TLSv1.1或TLSv1.2,最好使用TLSv1 ... 
- 请求被中止: 未能创建 SSL/TLS 安全通道,以及解决方法,即:Could not create SSL/TLS secure channel
		C# 访问https请求被中止: 未能创建 SSL/TLS 安全通道(Could not create SSL/TLS secure channel) 以及 X509Certificate2 temp ... 
- C# 请求被中止: 未能创建 SSL/TLS 安全通道。 设置SecurityProtocol无效
		今天为了获取一张图片,用了一段代码: ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateV ... 
- .NET HttpWebRequest(请求被中止: 未能创建 SSL/TLS 安全通道)和(基础连接已经关闭: 发送时发生错误)问题查找解决
		前言: 前段时间在对接第三方接口的时候发生了一个非常奇葩的问题,就是使用 .NET Framework 4.6 HttpWebRequest进行网络请求的相关问题.背景,关于调用第三方的接口都是使用使 ... 
- Paypal开发中遇到请求被中止: 未能创建 SSL/TLS 安全通道及解决方案
		最近在基于ASP.NET上开发了Paypal支付平台,在ASP.NET开发的过程中没有遇到这个问题,但是引用到MVC开发模式中的时候就出现了"未能创建 SSL/TLS 安全通道及解决方案&q ... 
- WebRequest请求被中止: 未能创建 SSL/TLS 安全通道
		使用System.Net.WebRequest.Create(url)抓取某网站信息时 ,出现“未能创建 SSL/TLS 安全通道”此条异常信息 解决方案 引用:using System.Net; 在 ... 
- C# https证书通信Post/Get(解决做ssl通道时遇到“请求被中止: 未能创建 SSL/TLS 安全通道”问题)
		public static string HttpPost(string url, string param = null) { HttpWebRequest request; //如果是发送HTTP ... 
随机推荐
- nodejs中router的使用
			一.划分文件使用Router 创建一个routes目录,专门用于放置路由文件,通过module.exports导出供外部使用. // 引入类 const Koa =require('koa'); // ... 
- CSS 常用样式-盒模型属性
			盒模型又叫框模型,包含了五个用来描述盒子位置.尺寸的属性,分别是宽度 width.高度 height.内边距 padding. 边框 border.外边距 margin. 常见盒模型区域: • 盒模型 ... 
- 2003031118—李伟—Python数据分析五一假期作业—MySQL的安装以及使用
			项目 期中试卷 课程班级博客链接 20级数据班(本) 这个作业要求链接 作业要求 博客名称 2003031118-李伟-Python数据分析五一假期作业-MySQL的安装以及使用 要 ... 
- Training time_SSM
			三阶段 MyBatis 1 三层架构介绍 2 MyBatis介绍 类库:对于现有技术的一个封装. 框架:对于一个问题的一整套解决方案. MyBatis是一个半自动的ORM持久层的框架.刚开始叫做iBa ... 
- OO_Lab0总结博客
			OO_Lab0 问题描述 对表达式结构进行建模,将表达式中非必要的括号进行展开并化简. 设定的形式化表述(仅写出部分): 表达式 \(\rightarrow\) 空白项 [加减 空白项] 项 空白项 ... 
- Delphi数据库备份
			此处代码只是测试代码,仅仅是测试 //环境:D7+SQL Server 2008 1 unit Unit1; 2 3 interface 4 5 uses 6 Windows, Messages, S ... 
- 探秘ThreadLocal
			一 类结构 主要是set(T), get(), remove()方法 二 TheadLocal是什么时候创建的 threadLocal的初始化, lazy creating, 用到的时候(get 或 ... 
- liunx 目录详解
			/etc/sysconfig/network-scripts/ifcfg-eth0 第一块网卡的配置文件 /etc/sysconfig/network 主机名配置文件 /etc/profile ... 
- Caused by: java.lang.NoClassDefFoundError: net/minidev/asm/FieldFilter 报错的解决
			Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'r ... 
- ValueError: unsupported format character ‘Y‘ (0x59) at index 70
			错误信息:ValueError: unsupported format character 'Y' (0x59) at index 70产生原因:因为python执行的sql中存在类似DATE_FOR ... 
