Dot-Net
如何解決“無法為具有權限的 SSL/TLS 安全通道建立信任關係”
我有一個使用 HTTPS 在 IIS 7 中託管的 WCF 服務。當我在 Internet Explorer 中瀏覽到這個站點時,它就像一個魅力,這是因為我已將證書添加到本地根證書頒發機構儲存中。
我正在一台機器上開發,所以客戶端和伺服器是同一台機器。證書是直接從 IIS 7 管理單元中自簽名的。
我現在不斷收到此錯誤…
無法為具有權限的 SSL/TLS 安全通道建立信任關係。
…從客戶端控制台呼叫時。
我手動為自己授予了證書的權限和網路服務,使用
findprivatekey和使用cacls.exe.我嘗試使用 SOAPUI 連接到服務,並且可以正常工作,因此它一定是我的客戶端應用程序中的一個問題,它是基於過去使用 http 的程式碼。
我還能在哪裡看我似乎已經用盡了所有可能性,為什麼我無法連接?
作為一種解決方法,您可以在客戶端添加一個處理
ServicePointManager程序ServerCertificateValidationCallback:System.Net.ServicePointManager.ServerCertificateValidationCallback += (se, cert, chain, sslerror) => { return true; };但請注意,這不是一個好的做法,因為它完全忽略了伺服器證書並告訴服務點管理器任何證書都可以,這可能會嚴重危及客戶端安全。您可以對此進行改進並進行一些自定義檢查(針對證書名稱、雜湊等)。至少可以在使用測試證書時規避開發過程中出現的問題。