【SSL】WebClient 请求 https 页面出错:未能创建 SSL/TLS 安全通道

#问题:

  当向一个https的url上发送请求,报错:未能创建 SSL/TLS 安全通道;

using (WebClient client = new WebClient())
{
    string address="https://xxx.com";
    client.Headers.Add(HttpRequestHeader.ContentType, "text/xml");

    System.Text.ASCIIEncoding  encoding=new System.Text.ASCIIEncoding();
    var response = client.UploadData(address, "POST", encoding.GetBytes(msg));
}

#原因:

  ssl证书不受信任,验证失败;

#解决方案:

  请求之前,进行如下设置;

ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(bypassAllCertificateStuff);

private static bool bypassAllCertificateStuff(object sender, X509Certificate cert, X509Chain chain, System.Net.Security.SslPolicyErrors error)
{
   return true;
}

  简写

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

  整合

 1 public class Test
 2 {
 3     public void TestFun
 4     {
 5       ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
 6        using (WebClient client = new WebClient())
 7       {
 8           string address="https://xxx.com"; 9          client.Headers.Add(HttpRequestHeader.ContentType,"text/xml");
10          System.Text.ASCIIEncoding  encoding=new System.Text.ASCIIEncoding();
11          var response = client.UploadData(address, "POST", encoding.GetBytes(msg));
12       }
13     }
14     private bool CheckValidationResult(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors errors)
15     {   // 总是接受 认证平台 服务器的证书
16         return true;
17     }
18 }

原文地址:https://www.cnblogs.com/willingtolove/p/9403796.html

时间: 2024-12-14 00:39:46

【SSL】WebClient 请求 https 页面出错:未能创建 SSL/TLS 安全通道的相关文章

解决“未能创建 SSL/TLS 安全通道”异常

引用: https://www.cnblogs.com/ahdung/p/10489229.html 之前写了一个桌面程序,程序会间歇性访问某个https接口,一直用的好好的,今天突然报错了,异常就发生在访问接口的地方,曰“请求被中止,未能创建 SSL/TLS 安全通道.”,另外有台电脑也有跑该程序,也是同样的报错,看来是接口方改动过什么了. 搜索一番,原因应该是,接口方变更了安全协议,而客户端并未启用该协议.解决办法自然就是:让客户端启用该协议.具体就是在发起网络请求之前确保ServicePo

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

C# 访问https请求被中止: 未能创建 SSL/TLS 安全通道(Could not create SSL/TLS secure channel) 一般GetResponse可以直接访问https,如果不行添加回调: ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult

Windows下Apache配置SSL以支持https及出错的解决办法

步骤一:安装apache,使其支持SSL,并安装php 1.安装配有SSL模块的apache,apache_2.2.8-win32-x86-openssl-0.9.8g 2.配置apache以支持SSL: 1)打开apache的配置文件conf/httpd.conf LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpd-ssl.conf 去掉两行前面的# 2)注意修改httpd-ssl.conf 文件里的两个字段: S

C# 中使用WebClient 请求 https

WebClient 请求 启用SSL的站点 时,如果站点的证书是不可信的,请求会被阻止,解决办法如下: 添加以下代码: ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; 其实就是自定义一个验证服务器证书的回调!

C# https证书通信Post/Get(解决做ssl通道时遇到“请求被中止: 未能创建 SSL/TLS 安全通道”问题)

1 public static string HttpPost(string url, string param = null) 2 { 3 HttpWebRequest request; 4 5 //如果是发送HTTPS请求 6 if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)) 7 { 8 ServicePointManager.SecurityProtocol = SecurityProtocolTyp

IIS7下 【请求被中止: 未能创建 SSL/TLS 安全通道 】 解决方法

    一.导入证书 1. 单击 开始 ,单击 运行 ,键入 mmc ,然后单击 确定 .         2. 在 文件 菜单上单击 添加/删除管理单元 .         3. 在 可用的管理单元 列表中选择 证书 ,点击 添加 .         4. 在 证书管理 对话框中选择 计算机账户 ,然后单击 下一步         5. 在 选择计算机 对话框中,单击 完成 .         6. 在 添加或删除管理单元 对话框单击 确定 .         7. 展开 证书 (本地计算机)

Invoke-WebRequest : 请求被中止: 未能创建 SSL/TLS 安全通道。

运行invoke-webrequest报错: 根据你的 PowerShell..NET Framework 的版本和升级,WEB 连接的缺省安全协议可能仍然是 SSL3. 您可以方便地查明它: [Net.ServicePointManager]::SecurityProtocol 返回的协议不包含 Tls12,那么可能无法用 PowerShell 连接到安全的 Web Service 和网站. 我们只需要这样操作就可以启用更多的服务: [Net.ServicePointManager]::Sec

微信退款时候报”请求被中止: 未能创建 SSL/TLS 安全通道“或”The request was aborted: Could not create SSL/TLS secure channel“的错误

如题,英文中文表述的是一个意思 退款测试在我本机测试一切都是正常的,但是发布到了服务器就报这样的一个错啦 但是无论百度或者google或者bing,你能够搜索到的结果都很类似,综合起来就是加这样一些代码,如下 ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | Secu

"请求被中止: 未能创建 SSL/TLS 安全通道"解决办法

1.安装证书: 手动双击证书安装,过程略 2.分配权限: 在控制台中找到安装的证书,右键选择“管理私钥”, 添加自己需要的权限,如果在测试可以直接添加Everyone 3.修改代码:public static string Refund(string urlWithParams) { ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.T