Estoy tratando de ejecutar este comando de PowerShell
Invoke-WebRequest -Uri https://apod.nasa.gov/apod/
y me sale este error "Invoke-WebRequest: la solicitud fue cancelada: no se pudo crear un canal seguro SSL / TLS". Las solicitudes https parecen funcionar (" https://google.com ") pero no esta en cuestión. ¿Cómo puedo hacer que esto funcione o usar otro comando de PowerShell para leer el contenido de la página?
powershell
ssl
Hewstone
fuente
fuente
Respuestas:
intenta usar este
fuente
$env:Profile
, o mejor aún, edite la tabla de registro .En un intento descarado de robar algunos votos,
SecurityProtocol
es unEnum
con el[Flags]
atributo. Entonces puedes hacer esto:O como se trata de PowerShell, puede dejar que analice una cadena por usted:
Entonces técnicamente no necesita saber la versión TLS.
Copié y pegué esto desde un script que creé después de leer esta respuesta porque no quería pasar por todos los protocolos disponibles para encontrar uno que funcionara. Por supuesto, podrías hacer eso si quisieras.
Nota final: tengo la declaración original (menos las ediciones SO) en mi perfil de PowerShell, por lo que está en cada sesión que comienzo ahora. No es totalmente infalible ya que todavía hay algunos sitios que simplemente fallan, pero seguramente veo el mensaje en cuestión con mucha menos frecuencia.
fuente
[Net.ServicePointManager]::SecurityProtocol = "Tls12, Tls11, Tls, Ssl3"
. Recuerde que SSLv3 y TLSv1.0 han quedado en desuso debido a POODLE, así que úselo bajo su propio riesgo.Si, como yo, ninguno de los anteriores funciona, también podría valer la pena probar específicamente una versión más baja de TLS. Había intentado lo siguiente, pero no parecía resolver mi problema:
Al final, fue solo cuando apunté a TLS 1.0 (específicamente eliminar 1.1 y 1.2 en el código) que funcionó:
El servidor local (en el que se estaba intentando esto) está bien con TLS 1.2, aunque el servidor remoto (que previamente fue "confirmado" como TLS 1.2 por un tercero) parece no estarlo.
Espero que esto ayude a alguien.
fuente
Esto funciona para mi...
fuente
Asegúrese de cambiar el SHELL primero:
fuente
No he descubierto la razón, pero la reinstalación del
.pfx
certificado (tanto en el usuario actual como en la máquina local) funciona para mí.fuente
Invoke-WebRequest
localmente, funciona al principio pero fallará más tarde. Parece que a veces ya no puede leer el certificado (no conozco el mecanismo detrás de él. Quizás sea un entorno controlado por la compañía). Pero reinstalar el certificado funciona en este caso.