La secuencia de comandos Powershell para descargar el archivo, tiene problemas para configurar una conexión segura
-
02-07-2019 - |
Pregunta
Estoy creando un script automatizado para leer una lista de un sitio que publica el último código compilado. Esa es la parte que ya he descubierto. La siguiente parte de la secuencia de comandos es tomar ese código compilado de un servidor con un certificado no confiable.
Así es como voy a agarrar el archivo:
$web = new-object System.Net.WebClient
$web.DownloadFile("https://uri/file.msi", "installer.msi")
Entonces obtengo el siguiente error:
Llamada de excepción " Descargar archivo " con " 2 " argumento (s): " El subyacente se cerró la conexión: No se pudo establecer una relación de confianza para el Canal seguro SSL / TLS. & Quot;
Sé que me estoy perdiendo algo, pero no puedo encontrar la manera correcta de buscarlo.
Solución
Debe escribir un controlador de devolución de llamada para ServicePointManager .ServerCertificateValidationCallback .
Otros consejos
Brad tiene razón, pero tenga en cuenta que PowerShell V1 realmente no tiene soporte nativo para delegados, lo que necesitará en este caso específico. Creo que esto debería para evitarlo esa limitación ( de hecho, el escenario que describe es exactamente uno de los ejemplos utilizados).
Si estás usando powershell y te enfrentas a este error. Utilice el comando:
[Net.ServicePointManager] :: SecurityProtocol = [System.Net.SecurityProtocolType] :: Tls12
antes de descargar el paquete. Obliga a PS a usar TLS 1.2.
El motivo del error podría ser que el sitio web desde el que está intentando descargar ha deshabilitado la compatibilidad con TLS 1.0, que PS utiliza de forma predeterminada.