SSL/TLS セキュア チャネル「信頼関係を確立できません」エラーを解決します
SSL セキュア URL を使用して Web サービス呼び出しを行うときに、「SSL/TLS セキュア チャネルの信頼関係を確立できません」というエラーが発生すると、混乱を招くことがあります。考えられる原因と解決策を探ってみましょう。
このエラー メッセージは通常、サーバー上の SSL 証明書に問題があることを示します。自己署名されているか、ホスト名がサーバーと一致しない可能性があります。この問題を解決するには:
サーバーを信頼し、その証明書を検証したくない場合 (推奨されません):
<code>// 信任所有证书 System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);</code>
サーバーを信頼しているが、そのホスト名を確認したい場合:
<code>// 信任发送者 System.Net.ServicePointManager.ServerCertificateValidationCallback = ((sender, cert, chain, errors) => cert.Subject.Contains("YourServerName"));</code>
証明書を検証するためにカスタム コールバック関数を使用する場合:
<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>
これらのソリューションは、デフォルトの証明書検証プロセスを無効にします。外部サーバーと同様、信頼できないソースに接続する可能性があるため、注意して使用してください。ただし、サーバーが内部にあり、有効な証明書を取得することが現実的でない場合は、これらの回避策によって通信が容易になります。
以上が「信頼関係を確立できませんでした」SSL/TLS エラーのトラブルシューティング方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。