Résolution de l'erreur du canal sécurisé SSL/TLS « Impossible d'établir une relation de confiance »
Cela peut prêter à confusion lorsque vous rencontrez l'erreur « Impossible d'établir une relation de confiance pour le canal sécurisé SSL/TLS » lors d'un appel de service Web à l'aide d'une URL sécurisée SSL. Explorons les causes potentielles et les solutions.
Ce message d'erreur indique généralement un problème avec le certificat SSL sur le serveur. Il se peut qu'il soit auto-signé ou que le nom d'hôte ne corresponde pas à celui du serveur. Pour résoudre ce problème :
Si vous faites confiance au serveur et ne souhaitez pas vérifier son certificat (non recommandé) :
<code>// 信任所有证书 System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);</code>
Si vous faites confiance au serveur mais souhaitez vérifier son nom d'hôte :
<code>// 信任发送者 System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, cert, chain, errors) => cert.Subject.Contains("YourServerName"));</code>
Si vous préférez utiliser une fonction de rappel personnalisée pour vérifier le certificat :
<code>ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate); private static bool ValidateRemoteCertificate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors policyErrors) { bool result = cert.Subject.Contains("YourServerName"); return result; }</code>
Ces solutions désactivent le processus de vérification du certificat par défaut. Comme pour les serveurs externes, utilisez-les avec prudence car vous pourriez vous connecter à une source non fiable. Toutefois, si le serveur est interne et qu’il n’est pas pratique d’obtenir un certificat valide, ces solutions de contournement peuvent faciliter la communication.
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!