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

Другие вопросы по тегам