首页 > 解决方案 > Rest Sharp:请求被中止:无法创建 SSL/TLS 安全通道

问题描述

我正在使用 Rest Sharp DLL 来调用休息服务。我正在使用的服务在 HTTPS 上运行(但没有在代码中安装/使用证书)。但是 API 服务器确实安装了证书

它工作正常,直到最近 API 服务器由于过期而更新了它的证书。

现在我得到了异常:请求被中止:无法创建 SSL/TLS 安全通道。

我检查了响应的属性 IsSuccessful =false、ResponseStatus =Error、StatusCode= 0。

下面是我的代码:

var client = new RestClient(_action);
        client.RemoteCertificateValidationCallback = setCallBack;
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;


                client.Timeout = 90000;
                client.ReadWriteTimeout = 90000;
                var request = new RestRequest(Method.GET);
                request.Timeout = SafeConvert.ToInt32(p_timedout);
                request.ReadWriteTimeout = SafeConvert.ToInt32(p_timedout);
         
                foreach (var item in pHeaders)
                {
                    request.AddHeader(item.Key, item.Value);
                }

                request.AddHeader("Content-Type", "application/json");

                RestSharp.IRestResponse response = client.Execute(request);

 
public static bool setCallBack(object r_Sender, X509Certificate r_Certificate, X509Chain r_Chain, SslPolicyErrors r_SslPolicyErrors)
        {
            return true;
    }

我试过添加

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
       | SecurityProtocolType.Tls11
       | SecurityProtocolType.Tls12
       | SecurityProtocolType.Ssl3;

和之前的 .Excute 但仍然是同样的问题。

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | 安全协议类型.Tls12 | 安全协议类型.Ssl3;

PS:这是在生产环境中发生的

标签: sslc#-4.0restsharp

解决方案


推荐阅读