SOAP SSL/TLS セキュア チャネルの信頼問題のトラブルシューティング
問題:
ユーザーが SOAP Web サービスにアクセスすると、「SSL/TLS セキュア チャネルの信頼関係を確立できませんでした」というエラーが発生する場合があります。 これは、サービスが以前に機能していて、他の場所からアクセス可能な場合でも発生する可能性があります。
根本原因:
このエラーは通常、サーバー上の SSL 証明書の問題が原因で発生します。 サーバーのホスト名と証明書のホスト名の不一致、または自己署名証明書の使用が一般的な原因です。
問題の解決 (証明書検証のバイパス):
SSL 証明書の検証をバイパスするには (細心の注意を払って使用します):
方法 1 (ラムダ式):
<code class="language-csharp">System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);</code>
方法 2 (ホスト名チェックを伴うラムダ式):
<code class="language-csharp">System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, cert, chain, errors) => cert.Subject.Contains("YourServerName"));</code>
方法 3 (ホスト名チェックを伴う従来の方法):
<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>
重要なセキュリティ上の注意:
これらのソリューションは証明書の検証を無効にします。これは外部サーバーにとっては非常に危険であるため、セキュリティへの影響が十分に理解され受け入れられている内部サーバーにのみ採用する必要があります。 不適切に使用すると、システムが中間者攻撃に対して脆弱になる可能性があります。
以上がSOAP Web サービスで「SSL/TLS セキュア チャネル信頼関係」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。