RestSharpを使用した非常に単純なWeb要求があります。
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);
これはエラーメッセージを返します:
要求は中止されました:SSL/TLSセキュアチャネルを作成できませんでした
三つの事:
彼らの証明書はAES 128でTLS 1.2を使用しているため、RC4によって引き起こされるエラーとは無関係です。
これは、ターゲットフレームワークが.NET 4.5.2のVisual Studio 2015のローカルWin 10マシン上にあります。
なぜこのエラーが発生するのですか?
編集:
基本のSystem.NetとWebRequestクラスを使用するようにコードを変更し、次の行を追加することにより:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
here から示唆されているように、動作します。だから、RestSharpは何らかの理由で間違ったプロトコルを使用していると思いますか?
.NET 4.5
、TLS 1.2
はavailableですが、notデフォルトで有効。
はい、必要な場合はTLS 1.2
、. NETランタイム用に何らかの方法で指定する必要があります。
参考:.NET 4.7
、. NETはOSのデフォルトのSSL/TLSバージョンを使用します(最新のOSのほとんどはTLS 1.2
デフォルトとして)
その他の良いSO回答:
この行を移動します:ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
この行の前:WebRequest request = WebRequest.Create(url);
お役に立てば幸いです。