powershell Принятие самозаверяющих сертификатов с помощью ServerCertificateValidationCallback - PullRequest
0 голосов
/ 02 июля 2018

Я не могу заставить это работать, используя 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 Ответ

0 голосов
/ 25 июля 2018

В случае выше, после поиска ответов, я копался и делал захват пакетов. Один захват пакета с PowerShell, общение с сервером и один захват пакета с веб-браузером, общение с сервером.

PS-клиент Hello использовал TLS1.0

Веб-браузер Клиент Hello использовал TLS1.2

Итак, в PS я добавил это к коду и смог использовать https на сервере. [Net.ServicePointManager] :: SecurityProtocol = [Net.SecurityProtocolType] :: Tls12

...