Accéder par programme au contenu crypté SSL via HTTPS avec WebRequest
Lors de l'interaction avec des URL via WebRequest, il n'est pas rare de rencontrer des difficultés dues au cryptage SSL. Cet article vise à fournir une solution pour surmonter ces défis.
L'extrait de code que vous avez fourni tente de récupérer le contenu d'une URL mais rencontre une erreur lorsque l'URL utilise le protocole HTTPS. Pour gérer cette situation, il est essentiel d'ajuster votre code pour s'adapter au contenu crypté SSL.
La solution clé réside dans l'introduction de ServicePointManager.ServerCertificateValidationCallback, un délégué qui vous permet de gérer la validation des certificats SSL. En remplaçant son comportement par défaut, vous pouvez demander au code d'accepter toutes les certifications, y compris celles qui peuvent être invalides.
Pour y parvenir, ajoutez la ligne suivante avant de faire la requête Web :
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
Ensuite, créez une méthode simple appelée AcceptAllCertifications pour renvoyer true :
public bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { return true; }
Avec ces modifications, votre code pourra accéder et lire le contenu de URL qui utilisent le cryptage HTTPS, quelle que soit la validité 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!