在 C# HTTPS 請求中繞過 SSL 憑證驗證
本文詳細介紹如何在 C# 中發出 HTTPS 請求時抑制 SSL 憑證驗證。 這是使用 ServicePointManager.ServerCertificateValidationCallback
委託實現的,允許自訂處理 SSL 憑證錯誤。
理解ServicePointManager.ServerCertificateValidationCallback
ServicePointManager.ServerCertificateValidationCallback
委託在 HTTPS 連線建立期間觸發。它接收四個參數:
sender
:原始 HttpWebRequest
物件。 certificate
:伺服器提供的 X.509 憑證。 chain
:伺服器的 X.509 憑證鏈。 errors
:驗證期間遇到 SSL 策略錯誤。 ServicePointManager.ServerCertificateValidationCallback
如何運作
該委託在 TLS 握手和證書驗證之前執行。 它的回傳值決定連線是否繼續。
覆蓋的正確位置
應該在發出任何 HTTPS 請求之前實作覆蓋。 這可確保它在啟動連線時處於活動狀態。
Lambda 表達式範例
簡潔的方法使用 lambda 表達式:
<code class="language-csharp">ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, errors) => { return true; // Accept all certificates };</code>
重要注意事項
true
,有效地忽略所有憑證錯誤。 由於有重大安全風險,通常不建議在生產環境中這樣做。 HttpWebRequest.PreAuthenticate
設定為 true
通常對於憑證驗證來說是不必要的。 以上是如何在 C# HTTPS 請求中覆寫 SSL 憑證驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!