我有一些代碼用於連接到我們擁有的Web服務器。服務器有一個自簽名證書。我目前正在與信任連接任何證書在信任之前測試本地存儲的證書的遠程服務器證書
[System.Net.ServicePointManager]::ServerCertificateValidationCallback {$true}.
我怎樣才能改變這種做法,我可以測試是否可以自定義代碼或反對我的本地存儲證書的遠程服務器?例如,我可以改變上面
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$customValidator}
我想這樣做,而不是信任任何/所有證書的,什麼代碼,我想信任它,只有當它與公鑰CER文件我有相匹配或者我想使用自定義代碼來測試證書。我不太清楚的是如何處理自定義驗證以及代碼中的哪一點。我是否需要編寫整個類來處理自定義SSL驗證,還是有更好的方法來執行此操作?
$url = "https://myWebServer"
$web = New-Object Net.WebClient
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }
//[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { customSslCertValidation } #I would like to do something like this
$output = $web.DownloadString($url)
Write-Host $output