Estou tentando executar este comando powershell
Invoke-WebRequest -Uri https://apod.nasa.gov/apod/
e eu recebo esse erro. "Invoke-WebRequest: a solicitação foi abortada: não foi possível criar o canal seguro SSL / TLS." As solicitações https parecem funcionar (" https://google.com "), mas não esta em questão. Como posso fazer isso funcionar ou usar outro comando do PowerShell para ler o conteúdo da página?
powershell
ssl
pedra calcária
fonte
fonte
Respostas:
tente usar este
fonte
$env:Profile
ou, melhor ainda, edite a tabela de registro .Em uma tentativa descarada de roubar alguns votos,
SecurityProtocol
é umEnum
com o[Flags]
atributo Então você pode fazer isso:Ou como esse é o PowerShell, você pode permitir que ele analise uma sequência para você:
Tecnicamente, você não precisa conhecer a versão do TLS.
Copiei e colei isso a partir de um script criado depois de ler esta resposta, porque não queria percorrer todos os protocolos disponíveis para encontrar um que funcionasse. Claro, você poderia fazer isso se quisesse.
Nota final - Eu tenho a declaração original (menos edições de SO) no meu perfil do PowerShell, portanto está em todas as sessões que eu inicio agora. Não é totalmente infalível, pois ainda existem sites que simplesmente falham, mas eu certamente vejo a mensagem em questão com muito menos frequência.
fonte
[Net.ServicePointManager]::SecurityProtocol = "Tls12, Tls11, Tls, Ssl3"
. Lembre-se de que o SSLv3 e o TLSv1.0 foram descontinuados devido a POODLE, portanto, use por seu próprio risco.Se, como eu, nenhuma das opções acima funcionar, pode valer a pena tentar também especificamente uma versão TLS inferior. Eu tinha tentado o seguinte, mas não parecia resolver o meu problema:
No final, foi somente quando eu direcionei o TLS 1.0 (remova especificamente 1.1 e 1.2 no código) que funcionou:
O servidor local (em que isso estava sendo tentado) funciona bem com o TLS 1.2, embora o servidor remoto (anteriormente "confirmado" como bom para o TLS 1.2 por terceiros) pareça não estar.
Espero que isso ajude alguém.
fonte
Funciona para mim...
fonte
Certifique-se de trocar o SHELL primeiro:
fonte
Não descobri o motivo, mas reinstalar o
.pfx
certificado (no usuário atual e na máquina local) funciona para mim.fonte
Invoke-WebRequest
localmente, ele funciona primeiro, mas falha mais tarde. Parece que, às vezes, ele não consegue mais ler o certificado (não conheço o mecanismo por trás dele. Talvez seja uma configuração controlada pela empresa). Mas a reinstalação do certificado funciona nesse caso.