私たちが所有する 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