Contourner la validation du certificat SSL dans les requêtes HTTPS C#
Cet article explique comment supprimer la validation du certificat SSL lors des requêtes HTTPS en C#. Ceci est réalisé à l'aide du délégué ServicePointManager.ServerCertificateValidationCallback
, permettant une gestion personnalisée des erreurs de certificat SSL.
Compréhension ServicePointManager.ServerCertificateValidationCallback
Le délégué ServicePointManager.ServerCertificateValidationCallback
est déclenché lors de l'établissement de la connexion HTTPS. Il reçoit quatre arguments :
sender
: L'objet HttpWebRequest
d'origine.certificate
: Le certificat X.509 présenté par le serveur.chain
: La chaîne de certificats X.509 du serveur.errors
: Erreurs de politique SSL rencontrées lors de la validation.Comment ServicePointManager.ServerCertificateValidationCallback
Fonctionne
Ce délégué s'exécute avant la prise de contact TLS et la validation du certificat. Sa valeur de retour détermine si la connexion se poursuit.
Placement correct du remplacement
Le remplacement doit être implémenté avant toute requête HTTPS. Cela garantit qu'il est actif lorsque les connexions sont initiées.
Exemple d'expression lambda
Une méthode concise utilise une expression lambda :
<code class="language-csharp">ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, errors) => { return true; // Accept all certificates };</code>
Considérations importantes
true
, ignorant effectivement toutes les erreurs de certificat. Ceci n'est généralement pas recommandé pour les environnements de production en raison de risques de sécurité importants.HttpWebRequest.PreAuthenticate
sur true
n'est généralement pas nécessaire pour la validation du certificat.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!