C#Web请求w RestSharp – “请求已中止:无法创建SSL / TLS安全通道”

我有一个非常简单的Web请求与RestSharp:

var client = new RestClient("https://website.net");
var request = new RestRequest("/process", Method.GET);
request.AddParameter("cmd", "execute");
IRestResponse response = client.Execute(request);

var content = response.Content;
Console.WriteLine("Response: " + content);

这将返回错误消息:

The request was aborted: Could not create SSL/TLS secure channel

三件事:

>我通过浏览器得到了我期望的响应,
>我得到了Postman所期待的回应,
>此请求被发送到测试环境,但我可以将其发送到生产环境,该环境具有非常相似的地址,并获得我期望的响应,
>我很肯定它在今天之前有效.

他们的证书使用的是带有AES 128的TLS 1.2,因此它与RC4引起的错误无关.

这是在Visual Studio 2015中的本地Win 10计算机上,其目标框架为.NET 4.5.2.

为什么我会收到此错误?

编辑:

通过更改我的代码以使用基本System.Net和WebRequest类并添加行:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

here建议,它的工作原理.所以我猜RestSharp出于某种原因使用了不正确的协议?

解决方法:

在.NET 4.5中,TLS 1.2可用但默认情况下未启用.

所以是的,如果你需要1.2,你需要以某种方式为.NET运行时指定它.

供参考:
在.NET 4.7中,.NET将使用操作系统的默认SSL / TLS版本(大多数现代操作系统将默认使用TLS 1.2)

其他好的SO答案:

Default SecurityProtocol in .NET 4.5

上一篇:如何使用nexus3在无外网情况下(如云桌面)配置npm私库


下一篇:c# – RestSharp Authenticator遵循302重定向