La secuencia de comandos Powershell para descargar el archivo, tiene problemas para configurar una conexión segura

StackOverflow https://stackoverflow.com/questions/146973

  •  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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top