Dépannage des problèmes de confiance dans les canaux sécurisés SOAP SSL/TLS
Le problème :
Les utilisateurs peuvent rencontrer l'erreur « Impossible d'établir une relation de confiance pour le canal sécurisé SSL/TLS » lors de l'accès à un service Web SOAP. Cela peut se produire même si le service a déjà fonctionné et reste accessible depuis d'autres emplacements.
La cause profonde :
Cette erreur provient généralement de problèmes de certificat SSL sur le serveur. Une incompatibilité entre le nom d'hôte du serveur et le nom d'hôte du certificat, ou l'utilisation d'un certificat auto-signé, sont des coupables courants.
Résolution du problème (contournement de la validation du certificat) :
Pour contourner la validation du certificat SSL (à utiliser avec une extrême prudence) :
Méthode 1 (Expression Lambda) :
<code class="language-csharp">System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);</code>
Méthode 2 (expression Lambda avec vérification du nom d'hôte) :
<code class="language-csharp">System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, cert, chain, errors) => cert.Subject.Contains("YourServerName"));</code>
Méthode 3 (méthode traditionnelle avec vérification du nom d'hôte) :
<code class="language-csharp">ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate); // Validation Callback private static bool ValidateRemoteCertificate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors policyErrors) { bool result = cert.Subject.Contains("YourServerName"); return result; }</code>
Remarque de sécurité importante :
Ces solutions désactivent la validation des certificats. Ceci est très risqué pour les serveurs externes et ne doit être utilisé que pour les serveurs internes où les implications en matière de sécurité sont pleinement comprises et acceptées. Une utilisation inappropriée peut rendre votre système vulnérable aux attaques de l'homme du milieu.
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!