Https请求被中止: 未能创建 SSL/TLS 安全通道
可以参考https://www.cnblogs.com/ccsharp/p/3270344.html
和https://blog.csdn.net/baidu_27474941/article/details/52484395
public static bool CheckValidationResult(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{ return true; }
//通过https协议上传数据,url为接口地址,str为要上传的数据
public static string HttpPost(string url,string str)
{
string result="";
try
{
ServicePointManager.Expect100Continue = false;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11|SecurityProtocolType.Tls12|SecurityProtocolType.Tls|SecurityProtocolType.Ssl3;// 只有.net4.5以上才有Tls11,Tls12,建立通道
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
HttpWebRequest req=(HttpWebRequest )WebRequest.Create(url) ;
//读取本地计算机证书
X509Store certStore = new X509Store(StoreName.My, StoreLocation.LocalMachine);
                certStore.Open(OpenFlags.ReadOnly);
                X509Certificate2Collection certCollection = certStore.Certificates.Find(X509FindType.FindBySubjectName, "安装的证书名字", false);
                req.ClientCertificates.Add(certCollection[0]));
//传输数据
req.Method = "POST";
                req.ContentType = "application/json";//根据编码格式进行选择
                req.ContentLength = data.Length;
byte[] data=Encoding.UTF8.GetBytes(str);//数据类型转换
                using (var reqStream = request.GetRequestStream())
                {
reqStream .Write(data, 0, data.Length);
reqStream .Close();
                }
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream=response.GetResponseStream();
using(Stream reader=new StreamReader(stream,Encoding.UTF8))
{
result=reader.ReadToEnd();
}
}
catch
{
throw;
}
return result;
}
Https传输证书授权问题
一、导入证书
1. 单击 开始 ,单击 运行 ,键入 mmc ,然后单击 确定 。
2. 在 文件 菜单上单击 添加/删除管理单元 。
3. 在 可用的管理单元 列表中选择 证书 ,点击 添加 。
4. 在 证书管理 对话框中选择 计算机账户 ,然后单击 下一步
5. 在 选择计算机 对话框中,单击 完成 。
6. 在 添加或删除管理单元 对话框单击 确定 。
7. 展开 证书 (本地计算机) ,展开 个人 ,然后单击 证书 。
8. 右键 -》 所有任务-》导入 选择你的证书导入
9.展开“受信任的根证书颁发机构”,选择证书--所有任务--导入
二. 修改IIS上对应项目的程序池标识(如果是服务端,客户端的不用此步骤)
1. 打开IIS -> 选择[应用程序池] -> 选中对应的项目 -> 选择右侧的[高级设置]
2. 找到[进程模型] -> 修改[标识]属性值
3. 将 ApplicationPoolIdentity 修改为 NetworkService
三、安装授权工具
1.下载 winhttpcertcfg.exe 安装
附下载地址:1.https://www.microsoft.com/en-us/download/confirmation.aspx?id=19801
2.https://www.microsoft.com/en-us/download/details.aspx?id=19801
3.安装完 用命令窗口 跳转到 C:\Program Files (x86)\Windows Resource Kits\Tools(安装的路径) 执行
winhttpcertcfg -g -c LOCAL_MACHINE\MY -s "test" -a "NetworkService"
test是证书名,不带后缀,替换成你的证书名字就行
详细信息可以参考https://www.cnblogs.com/ccsharp/p/3270344.html
https://www.cnblogs.com/similar/p/6831899.html

四、设置网站SSL
选中网站,点击 SSL设置 ,选择要求SSL,选择必须,点击应用

Https请求被中止: 未能创建 SSL/TLS 安全通道的更多相关文章
- 请求被中止: 未能创建 SSL/TLS 安全通道,以及解决方法,即:Could not create SSL/TLS secure channel
		C# 访问https请求被中止: 未能创建 SSL/TLS 安全通道(Could not create SSL/TLS secure channel) 以及 X509Certificate2 temp ... 
- 彻底解决:请求被中止: 未能创建 SSL/TLS 安全通道
		最近有个项目要调用客户用java写的带https的webservice,对方提供了证书文件 test.pfx,我这里调用方式如下: //webservice代理类 SvcService svc = n ... 
- 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 ... 
- C# 请求被中止: 未能创建 SSL/TLS 安全通道。 设置SecurityProtocol无效
		今天为了获取一张图片,用了一段代码: ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateV ... 
- .NET HttpWebRequest(请求被中止: 未能创建 SSL/TLS 安全通道)和(基础连接已经关闭: 发送时发生错误)问题查找解决
		前言: 前段时间在对接第三方接口的时候发生了一个非常奇葩的问题,就是使用 .NET Framework 4.6 HttpWebRequest进行网络请求的相关问题.背景,关于调用第三方的接口都是使用使 ... 
- 请求被中止: 未能创建 SSL/TLS 安全通道
		出现“请求被中止: 未能创建 SSL/TLS 安全通道.”的问题. 在创建请求地址的前面加了这句代码就可以了 System.Net.ServicePointManager.SecurityProtoc ... 
- 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; 在 ... 
随机推荐
- <HTML/CSS>BFC原理剖析
			本文讲了BFC的概念是什么: BFC的约束规则:咋样才能触发生成新的BFC:BFC在布局中的应用:防止margin重叠(塌陷,以最大的为准): 清除内部浮动:自适应两(多)栏布局. 1. BFC是什么 ... 
- SpringBoot集成Spring MVC视图
			SpringBoot在springmvc的视图解析器方面就默认集成了ContentNegotiatingViewResolver和BeanNameViewResolver,在视图引擎上就已经集成自动配 ... 
- ideal配置使用Git
			1.git简介 git是目前流行的分布式版本管理系统.它拥有两套版本库,本地库和远程库,在不进行合并和删除之类的操作时这两套版本库互不影响.也因此其近乎所有的操作都是本地执行,所以在断网的情况下任然可 ... 
- js实现div吸顶效果
			<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script> < ... 
- DB2学习笔记备忘 2018.5.9
			DB2安装的时候选择了和系统用户一致的选项,然后登陆的时候,连接的时候输入的就是计算机用户的用户名和密码. 1.3 DB2数据库体系结构 系统 一个系统表示DB2的一个安装.在一个由很多及其组成的网络 ... 
- SLAM十四讲中Sophus库安装
			Sophus截止目前有很多版本,其中大体分为两类,一种是用模板实现的方法,一种是用非模板类实现的,SLAM十四讲中使用的是非模板类库,clone Sophus: git clone http://gi ... 
- iOS-AVFoundation生成缩略图
			使用MPMoviePlayerController来生成缩略图足够简单,但是如果仅仅是是为了生成缩略图而不进行视频播放的话,此刻使用 MPMoviePlayerController就有点大材小用了.其 ... 
- Redis源码解析
			一.src/server.c 中的redisCommandTable列出的所有redis支持的命令,其中字符串命令包括从get到mget:列表命令从rpush到rpoplpush:集合命令包括从sad ... 
- charles 批量重复请求/重复发包工具
			本文参考:charles 批量请求 重复发包工具/repeat Charles 让你选择一个请求并重复,在测试后端接口的时候非常有用: Charles将请求重新发送到服务器,并将响应显示为新请求. 如 ... 
- git 提交大小超过100M
			#MsnDialog.ad, #MyMoveAd, #QQ_Full, #ad-SNSSplashAd, #ad6cn, #adBody07, #adLeftFloat, #adRightFloat, ... 
