Skip to main content

Problema

En executar un script de PowerShell que utilitza Invoke-WebRequest, pot aparèixer l’error següent:
Invoke-WebRequest : The request was aborted: Could not create SSL/TLS secure channel.
Això ocorre perquè l’script intenta connectar-se a un servidor mitjançant protocols segurs (TLS/SSL), però els protocols requerits (com TLS 1.2) no estan habilitats al sistema.
Image

Solucions

Per solucionar ràpidament aquest problema a la sessió actual, podeu habilitar els protocols necessaris executant l’ordre següent a la vostra sessió de PowerShell:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls11 -bor ` [Net.SecurityProtocolType]::Tls12 -bor ` [Net.SecurityProtocolType]::Tls -bor ` [Net.SecurityProtocolType]::Ssl3
Tanmateix, aquesta solució és temporal i s’ha de reaplicar a cada nova sessió de PowerShell.

Explicació de les claus de registre

Configuració del registreDescripció
SchUseStrongCryptoForça el .NET Framework a utilitzar protocols criptogràfics forts (p. ex., TLS 1.2).
SystemDefaultTlsVersionsGaranteix que les aplicacions .NET utilitzen la versió de TLS predeterminada del sistema, permetent-los adaptar-se a protocols més nous.

Si l’error persisteix

Si l’error persisteix, considereu les accions següents per assegurar connexions segures per a totes les aplicacions .NET sense requerir intervenció manual a cada sessió:
  • Assegureu-vos que el vostre sistema admeti TLS 1.2 i que estigui habilitat al sistema operatiu.
  • Actualitzeu a PowerShell Core o PowerShell 7, que utilitzen protocols de seguretat moderns per defecte.