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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>