SOAP Web サービス通信における「SSL/TLS セキュア チャネルの信頼関係を確立できません」エラーを解決します
.NET Web サービスの呼び出しがこれまでは正常に動作していたのに、「SSL/TLS セキュア チャネルの信頼を確立できません」というエラーが表示される場合は、根本的な問題を調査する必要があります。
理由:
このエラーは通常、Web サービスによって提供される SSL 証明書とクライアント コンピューターに構成された信頼設定の間に不一致がある場合に発生します。
解決策:
この問題を解決するには、Web サービスの SSL 証明書を確認し、クライアント コンピューターの信頼関係設定を調整する必要があります。以下に 3 つの方法を示します:
<code class="language-csharp">System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);</code>
このコード スニペットは、証明書の検証を無効にし、証明書の問題を無視するように Web サービスに指示して、通信を続行できるようにします。ただし、この方法は、証明書を取得できない内部サーバーにのみ使用してください。
<code class="language-csharp">System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, cert, chain, errors) => cert.Subject.Contains("YourServerName"));</code>
このコード スニペットは、証明書内のホスト名を予想されるホスト名と比較することによって証明書を検証します。一致する場合、通信が許可されます。
<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>
このメソッドには、特定の条件に基づいて証明書を検証するためのカスタム コールバック関数の定義が含まれます。この場合、コードは証明書内のホスト名が特定の値と一致するかどうかをチェックします。
「YourServerName」を実際のサーバー名に置き換えてください。 どの方法を選択するかは、特定の状況とセキュリティのニーズによって異なります。 ホスト名の一致またはカスタム証明書の検証を優先することを強くお勧めします。また、セキュリティ リスクを十分に理解していない限り、証明書の警告を無視することはお勧めできません。
以上がSOAP Web サービスで「SSL/TLS セキュア チャネルの信頼関係を確立できませんでした」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。