Skip to main content

Problema

Ao executar um script PowerShell que usa Invoke-WebRequest, pode aparecer o seguinte erro:
Invoke-WebRequest : The request was aborted: Could not create SSL/TLS secure channel.
Isso ocorre porque o script está tentando se conectar a um servidor usando protocolos seguros (TLS/SSL), mas os protocolos necessários (como TLS 1.2) não estão habilitados no sistema.
Image

Soluções

Para resolver rapidamente esse problema na sessão atual, você pode habilitar os protocolos necessários executando o seguinte comando na sua sessão PowerShell:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls11 -bor ` [Net.SecurityProtocolType]::Tls12 -bor ` [Net.SecurityProtocolType]::Tls -bor ` [Net.SecurityProtocolType]::Ssl3
No entanto, essa correção é temporária e precisa ser reaplicada em cada nova sessão PowerShell.

Explicação das chaves de registro

Configuração do registroDescrição
SchUseStrongCryptoForça o .NET Framework a usar protocolos criptográficos fortes (por exemplo, TLS 1.2).
SystemDefaultTlsVersionsGarante que as aplicações .NET usem a versão TLS padrão do sistema, permitindo que se adaptem a protocolos mais novos.

Se o erro persistir

Se o erro persistir, considere as seguintes ações para garantir conexões seguras em todas as aplicações .NET sem intervenção manual em cada sessão:
  • Verifique se o seu sistema é compatível com TLS 1.2 e se ele está habilitado no sistema operacional.
  • Atualize para o PowerShell Core ou PowerShell 7, que usam protocolos de segurança modernos por padrão.