我知道ServicePointManager.ServerCertificateValidationCallback
不再對.NET核心存在,轉而代之以:但是,我們目前正在使用的ServiceStack.Core
庫上DOTNET的核心服務繞過SSL證書驗證堆棧
using(var handler = new System.Net.Http.HttpClientHandler())
{
using (var httpClient = new System.Net.Http.HttpClient(handler))
{
handler.ServerCertificateCustomValidationCallback = (request, cert, chain, errors) =>
{
return true;
};
}
}
其中,據我可以看到,不會公開像這樣的屬性或處理程序本身。
我該如何告訴ServiceStack客戶端繞過此代碼中的ssl驗證?
using(var client = new JsonServiceClient("https://www.google.com"))
{
var response = client.Get("/results");
}
如果有辦法,在Windows和Linux上都可以工作嗎?
*「繞過SSL證書驗證...」 - 聽起來很糟糕。它將您的應用程序轉移到[世界上最危險的代碼:在非瀏覽器軟件中驗證SSL證書]的領域(http://crypto.stanford.edu/~dabo/pubs/abstracts/ssl-client-bugs。 HTML)。也許你應該將它改爲*「如何執行自定義驗證...」*,然後執行對您的應用程序有意義的檢查。 – jww
@jww「世界上最危險的代碼」聽起來非常誇張,特別是沒有上下文。如果您正在使用自簽名證書訪問內部服務,那該怎麼辦? –
如果您有自簽名證書,則可以驗證它。沒有必要放棄或避免驗證。您甚至可以跳過證書驗證並跳轉到公鑰固定。在固定的情況下,證書只是一個演示文稿的詳細信息,並且您需要的只是主機的公鑰以識別它。我想你可能會問錯誤的問題,但我不知道足以說明問題。也許你應該退後一步,並提出問題,例如如何在服務中使用自簽名證書。 – jww