可以参考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 安全通道的更多相关文章

  1. 请求被中止: 未能创建 SSL/TLS 安全通道,以及解决方法,即:Could not create SSL/TLS secure channel

    C# 访问https请求被中止: 未能创建 SSL/TLS 安全通道(Could not create SSL/TLS secure channel) 以及 X509Certificate2 temp ...

  2. 彻底解决:请求被中止: 未能创建 SSL/TLS 安全通道

    最近有个项目要调用客户用java写的带https的webservice,对方提供了证书文件 test.pfx,我这里调用方式如下: //webservice代理类 SvcService svc = n ...

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

    最近在开发项目的时候,使用爬虫抓取网络数据的时候,当请求Web数据时,碰到了“请求被中止: 未能创建 SSL/TLS 安全通道”的问题,尝试过很多网上的方法,例如添加证书等都没有用.最后在GitHub ...

  4. 请求被中止: 未能创建 SSL/TLS 安全通道,设置 TLSv1.2和TLSv1.1版本 .基础链接已经关闭,发送时发生错误

    WSO2 API访问的安全要求, 只能提供TLSv1.2和TLSv1.1版本,其它SSL版本协议因为存在较高安全漏洞问题会被disable. A 改成TLSv1.1或TLSv1.2,最好使用TLSv1 ...

  5. C# 请求被中止: 未能创建 SSL/TLS 安全通道。 设置SecurityProtocol无效

    今天为了获取一张图片,用了一段代码: ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateV ...

  6. .NET HttpWebRequest(请求被中止: 未能创建 SSL/TLS 安全通道)和(基础连接已经关闭: 发送时发生错误)问题查找解决

    前言: 前段时间在对接第三方接口的时候发生了一个非常奇葩的问题,就是使用 .NET Framework 4.6 HttpWebRequest进行网络请求的相关问题.背景,关于调用第三方的接口都是使用使 ...

  7. 请求被中止: 未能创建 SSL/TLS 安全通道

    出现“请求被中止: 未能创建 SSL/TLS 安全通道.”的问题. 在创建请求地址的前面加了这句代码就可以了 System.Net.ServicePointManager.SecurityProtoc ...

  8. Paypal开发中遇到请求被中止: 未能创建 SSL/TLS 安全通道及解决方案

    最近在基于ASP.NET上开发了Paypal支付平台,在ASP.NET开发的过程中没有遇到这个问题,但是引用到MVC开发模式中的时候就出现了"未能创建 SSL/TLS 安全通道及解决方案&q ...

  9. WebRequest请求被中止: 未能创建 SSL/TLS 安全通道

    使用System.Net.WebRequest.Create(url)抓取某网站信息时 ,出现“未能创建 SSL/TLS 安全通道”此条异常信息 解决方案 引用:using System.Net; 在 ...

随机推荐

  1. hibernate的各种查询

    Hibernate Query Language(HQL)Criteria QueryNative SQL下面对其分别进行解释select子句:有时并不需要取得对象的所有属性,这时可以使用select ...

  2. excel怎么把一个sheet的 全部内容打印到一页纸上

    参考 https://jingyan.baidu.com/article/5225f26b04005ee6fa090830.html

  3. Linux笔记整理

    [随时更新] ps aux | grep mysql 检测MySQL服务是否在运行 Linux查看某个进程的线程:ps -T -p <pid> 列出了由进程号为<pid>的进程 ...

  4. 手把手教你MyEclipseUML建模(上)

    手把手教你MyEclipseUML建模(上) 转 https://blog.csdn.net/qq_37939251/article/details/83444359 1.用UML 1建模 MyEcl ...

  5. Android:系统自定义鼠标样式切换

    一.APP通过View修改鼠标样式 app view上修改鼠标样式比较简单,通过 hover event 获取鼠标坐标并使用如下方法修改为自定义图片: getWindow().getDecorView ...

  6. nginx+lua 设置跨域

    nginx 配置: header_filter_by_lua_file cros.lua; access_by_lua ' if ngx.var.request_method == "OPT ...

  7. 算法习题---4.3救济金发放(UVa133)

    一:题目 (n< )个人站成一圈,逆时针编号为1~n.有两个官员,A从1开始逆时针数,B从n开始顺时针数.在每一轮中,官员A数k个就停下来,官员B数m个就停下来(注意有可能两个官员停在同一个人上 ...

  8. 123457123457#0#-----com.threeapp.PaoPaoLong01-----泡泡龙大作战01

    com.threeapp.PaoPaoLong01-----泡泡龙大作战01

  9. mysql定时任务event——清理过期数据 (转)

    1.查询是否开启事件调度 SHOW VARIABLES LIKE 'event_scheduler'; 2.开启事件调度 临时: SET GLOBAL event_scheduler = 1; 永久: ...

  10. (三)java虚拟机内存管理和线程独占区和线程共享区

    一.内存管理 二.线程独占区之程序计数器(Program Counter Register) 程序计数器是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器.在虚拟机的概念模型里,字节 ...