我似乎无法使用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将返回以下错误
使用“ 1”作为参数调用“ DownloadString”的异常:“基础连接已关闭:发送时发生意外错误。” + CategoryInfo:未指定:(:) [],MethodInvocationException + FullyQualifiedErrorId:WebException
答案 0 :(得分:0)
在上述情况下,在寻找答案之后,我挖了一下并进行了数据包捕获。 使用Powershell与服务器对话时捕获一个数据包,通过Web浏览器与服务器对话时捕获一个数据包。
PS客户端Hello使用的是TLS1.0
Web浏览器Client Hello使用的是TLS1.2
因此,在PS中,我将其添加到了代码中,从而可以对服务器使用https。 [Net.ServicePointManager] :: SecurityProtocol = [Net.SecurityProtocolType] :: Tls12