Accès aux sites cryptés HTTPS avec WebRequest
Problème :
Dans un programme qui récupère du contenu à partir des URL fournies par l'utilisateur, une tentative d'accès au contenu crypté HTTPS échoue, ce qui entraîne un erreur.
Solution :
Le problème vient du comportement par défaut de WebRequest, qui valide les certificats SSL et rejette les connexions aux sites avec des certificats invalides. Pour permettre à votre code d'accéder au contenu crypté HTTPS, quelle que soit la validité du certificat, vous pouvez désactiver la validation du certificat en utilisant le code suivant avant de faire la demande Web :
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
Définition d'AcceptAllCertifications :
La méthode AcceptAllCertifications est définie comme suit :
public bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { return true; }
En définissant ceci rappel, vous demandez à WebRequest d'accepter toutes les certifications, désactivant ainsi la validation des certificats. Cela permet à votre programme d'accéder au contenu crypté HTTPS même si les certifications ne sont pas valides.
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!