158 votes

contourner un certificat SSL invalide en .net core

Je travaille sur un projet qui doit se connecter à un site https. Chaque fois que je me connecte, mon code lève une exception car le certificat de ce site provient d'un site non fiable. Existe-t-il un moyen de contourner la vérification du certificat dans .net core http ?

J'ai vu ce code dans une version précédente de .NET. Je suppose que j'ai besoin de quelque chose comme ça.

 ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;

198voto

kdaveid Points 573

Vous pouvez remplacer la vérification du certificat SSL lors d'un appel HTTP par une fonction de rappel anonyme, comme suit

using (var httpClientHandler = new HttpClientHandler())
{
   httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; };
   using (var client = new HttpClient(httpClientHandler))
   {
       // Make your request...
   }
}

De plus, je suggère d'utiliser un modèle d'usine pour les éléments suivants HttpClient parce qu'il s'agit d'un objet partagé qui pourrait ne pas être éliminé immédiatement et donc les connexions resteront ouvertes .

44voto

Troels Larsen Points 1294

Je suis venu ici pour trouver une réponse au même problème, mais j'utilise WCF pour NET Core. Si vous êtes dans le même bateau, utilisez :

client.ClientCredentials.ServiceCertificate.SslCertificateAuthentication = 
    new X509ServiceCertificateAuthentication()
    {
        CertificateValidationMode = X509CertificateValidationMode.None,
        RevocationMode = X509RevocationMode.NoCheck
    };

34voto

Set Points 21500

ServicePointManager.ServerCertificateValidationCallback n'est pas pris en charge par .Net Core.

La situation actuelle est qu'il s'agira d'un un nouveau ServerCertificateCustomValidationCallback pour le prochain contrat 4.1.* System.Net.Http (HttpClient). L'équipe .NET Core finalise actuellement le contrat 4.1. Vous pouvez lire à ce sujet dans ici sur github

Vous pouvez essayer la version préliminaire de System.Net.Http 4.1 en utilisant les sources directement ici dans CoreFx ou sur le flux MYGET : https://dotnet.myget.org/gallery/dotnet-core

Actuel WinHttpHandler.ServerCertificateCustomValidationCallback définition sur Github

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X