當訪問 https 內容的時候,有時候經常會看到證書錯誤(不在操作系統的證書信任鏈中?)的提示,在瀏覽器中我們可以忽略錯誤的證書,繼續訪問網頁內容。
但是在 .NET 程序中,需要由代碼來判斷是否忽略錯誤的證書。
解決方案:
在任意訪問 https 內容的程序代碼之前,設置一個證書處理程序,代碼如下:
ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, error) => { return true; };
這個因為是在靜態類型上的方法,所以只需要添加一次即可,不過也同時要注意,這是應用程序全局的證書處理,如果你希望在不同的地方進行不同證書處理的話,請注意。
這里為了省事,直接 return true,代表接受證書,無論對錯。如果場景需求嚴謹的話,應仔細判斷證書是否正確,然后再返回相應的結果。