Maison >développement back-end >C++ >Comment corriger les erreurs « Impossible d'établir une relation de confiance pour le canal sécurisé SSL/TLS » dans les services Web SOAP ?

Comment corriger les erreurs « Impossible d'établir une relation de confiance pour le canal sécurisé SSL/TLS » dans les services Web SOAP ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-21 08:27:09919parcourir

How to Fix

Résolution de l'erreur « Impossible d'établir une relation de confiance pour le canal sécurisé SSL/TLS » dans la communication du service Web SOAP

Si les appels du service Web .NET ont bien fonctionné dans le passé, mais que vous obtenez maintenant une erreur « Impossible d'établir la confiance pour le canal sécurisé SSL/TLS », vous devez enquêter sur le problème sous-jacent.

Raison :

Cette erreur se produit généralement lorsqu'il existe une différence entre le certificat SSL fourni par le service Web et les paramètres de confiance configurés sur l'ordinateur client.

Solution :

Pour résoudre ce problème, vous devez vérifier le certificat SSL du service Web et ajuster les paramètres de relation de confiance sur l'ordinateur client. Trois méthodes sont répertoriées ci-dessous :

  • Ignorer l'avertissement du certificat :
<code class="language-csharp">System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);</code>

Cet extrait de code désactive la vérification du certificat et demande au service Web d'ignorer les problèmes de certificat, permettant ainsi la poursuite de la communication. Toutefois, cette méthode ne doit être utilisée que pour les serveurs internes qui ne peuvent pas obtenir de certificat.

  • Assurez-vous que les noms d'hôtes correspondent :
<code class="language-csharp">System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, cert, chain, errors) => cert.Subject.Contains("YourServerName"));</code>

Cet extrait de code vérifie le certificat en comparant le nom d'hôte dans le certificat au nom d'hôte attendu. S'il y a une correspondance, la communication est autorisée.

  • Vérification du certificat personnalisé :
<code class="language-csharp">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>

Cette méthode implique de définir une fonction de rappel personnalisée pour vérifier le certificat en fonction de conditions spécifiques. Dans ce cas, le code vérifie si le nom d'hôte dans le certificat correspond à une valeur spécifique.

Veuillez remplacer « YourServerName » par le nom actuel de votre serveur. La méthode que vous choisissez dépend de votre situation spécifique et de vos besoins en matière de sécurité. Il est fortement recommandé de donner la priorité à la correspondance du nom d'hôte ou à la vérification des certificats personnalisés, et il n'est pas recommandé d'ignorer les avertissements des certificats à moins que vous ne compreniez parfaitement les risques de sécurité.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn