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 先注册表注册试试看是否可以。文章来源:https://www.toymoban.com/news/detail-672438.html
如果不行,则系统升级到Windows10 或者 服务器系统 升级 server 2016文章来源地址https://www.toymoban.com/news/detail-672438.html
到了这里,关于C# 服务HTTPS 对 请求被中止: 未能创建 SSL/TLS 安全通道报错的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!