首頁 >後端開發 >C++ >如何解決「無法建立信任關係」SSL/TLS 錯誤?

如何解決「無法建立信任關係」SSL/TLS 錯誤?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-21 08:42:09599瀏覽

How to Troubleshoot

解決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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn