0


C# 服务HTTPS 对 请求被中止: 未能创建 SSL/TLS 安全通道报错

1.如果windows支持HTTPS的TLS协议,则可以直接跳过 (Tls12)

[WebMethod(Description = "获取HttpsPost加密服务.")]
public string HTTPSPOST(String input,String sUrl)
{

        Log.Add("ReceiveNotice", "HTTPSPOST", "入参sUrl:" + sUrl + ",input:" + input);

        HttpWebRequest webReq = null;
           
         ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);

// 此处对HTTPS校验 TLS进行跳过

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Ssl3 | (SecurityProtocolType)192 | (SecurityProtocolType)768 | (SecurityProtocolType)3072;

        webReq = WebRequest.Create(sUrl) as HttpWebRequest;
         webReq.ProtocolVersion = HttpVersion.Version10;
         webReq.Method = "POST";
         webReq.ContentType = "application/json";

        StreamWriter writer = new StreamWriter(webReq.GetRequestStream());
         writer.Write(input);
         writer.Flush();

          
         HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();//获取服务器返回的结果
         Stream getStream = response.GetResponseStream();
         StreamReader streamreader = new StreamReader(getStream, Encoding.UTF8);
         String result = streamreader.ReadToEnd();

        Log.Add("ReceiveNotice", "HTTPSGET", "出参:" + result);
         return result;

    }

2.如果postman能测试通过,服务一直返回 请求被中止: 未能创建 SSL/TLS 安全通道

则判断Windows是否支持 TLS12

验证系统是否支持TLS1.2、TLS1.3
WIN+R PowerShell 打开:
[Net.ServicePointManager]::SecurityProtocol
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Ssl3 -bor [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12

返回:Ssl3, Tls, Tls11, Tls12 则支持TLS12

如果返回不包含 Tls11, Tls12 先注册表注册试试看是否可以。

如果不行,则系统升级到Windows10 或者 服务器系统 升级 server 2016

标签: c# https java

本文转载自: https://blog.csdn.net/qq_15267865/article/details/132500663
版权归原作者 Ccccch丶 所有, 如有侵权,请联系我们删除。

“C# 服务HTTPS 对 请求被中止: 未能创建 SSL/TLS 安全通道报错”的评论:

还没有评论