powershell Принятие самозаверяющих сертификатов с использованием ServerCertificateValidationCallback
Я не могу заставить это работать с помощью Powershell 5.1. Устройство является Cisco MX800 CE9.3.
$url = "https://10.1.135.20/getxml?location=/Status"
[Net.ServicePointManager]::ServerCertificateValidationCallback={$true}
$webclient = New-Object System.Net.Webclient
$credCache = New-Object System.Net.CredentialCache
$creds = New-Object System.Net.NetworkCredential($user,$pwd)
$credCache.Add($url, "Basic", $creds)
$webclient.Credentials = $credCache
$webpage = $webclient.DownloadString($url)
Запуск этого скрипта с использованием http возвращает XML, как и ожидалось, но использование https возвращает ошибку ниже
Исключение вызывает "DownloadString" с аргументом (ами) "1": "Базовое соединение было закрыто: при отправке произошла непредвиденная ошибка". + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: WebException
1 ответ
В случае выше, после поиска ответов, я копался и делал захват пакетов. Один захват пакета с PowerShell, общение с сервером и один захват пакета с веб-браузером, общение с сервером.
Привет PS-клиент использовал TLS1.0
Привет клиент Web-браузеров использовал TLS1.2
Итак, в PS я добавил это к коду и смог использовать https на сервере. [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12