contourner le certificate SSL invalide dans le kernel .net

Je travaille sur un projet qui doit être connecté à un site https. Chaque fois que je me connecte, mon code lève une exception car le certificate de ce site provient d’un site non approuvé. Existe-t-il un moyen de contourner la vérification de certificate dans .net core http?

J’ai vu ce code de la version précédente de .NET. Je suppose que j’ai juste besoin de quelque chose comme ça.

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

ServicePointManager.ServerCertificateValidationCallback n’est pas pris en charge dans .Net Core.

La situation actuelle est qu’il s’agira d’une nouvelle méthode 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 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 dans le stream MYGET: https://dotnet.myget.org/gallery/dotnet-core

Définition actuelle de WinHttpHandler.ServerCertificateCustomValidationCallback sur Github

Vous pouvez remplacer la vérification de certificate SSL sur un appel HTTP avec la fonction de rappel anonyme de ce type.

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

En outre, je suggère d’utiliser un modèle d’usine pour HttpClient car il s’agit d’un object partagé qui ne peut pas être supprimé immédiatement et par conséquent les connexions restront ouvertes .

Je suis venu ici chercher 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 };