J'ai une requête web incroyablement simple avec 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);
Cela renvoie le message d'erreur:
La demande a été abandonnée: impossible de créer le canal sécurisé SSL/TLS
Trois choses:
Leur certificat utilise TLS 1.2 avec AES 128, il n’est donc pas lié aux erreurs causées par RC4.
Cela se trouve sur mon ordinateur Win 10 local dans Visual Studio 2015 avec un framework cible de .NET 4.5.2.
Pourquoi ai-je cette erreur?
MODIFIER:
En changeant mon code pour utiliser la base System.Net et la classe WebRequest et en ajoutant la ligne:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
comme suggéré de ici , cela fonctionne. Donc je suppose que RestSharp utilise le protocole incorrect pour une raison quelconque?
Dans .NET 4.5, TLS 1.2 est disponible mais n'est pas activé par défaut.
Donc, oui, si vous avez besoin de 1.2, vous devrez le spécifier d'une manière ou d'une autre pour l'exécution de .NET.
FYI: Dans .NET 4.7, .NET utilisera la version SSL/TLS par défaut du système d’exploitation (la plupart des systèmes d’exploitation modernes auront TLS 1.2 par défaut).
Autre bien SO Réponse:
déplacez cette ligne: ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
avant cette ligne: WebRequest request = WebRequest.Create (url);
J'espère que cela pourra aider.