Consigo me conectar ao seguinte https://registry.terraform.io/.well-known/terraform.json usando um navegador
Quando tento me conectar a ele pela linha de comando
curl: (7) Falha ao conectar-se à porta 443 do registro.terraform.io: Tempo limite esgotado
alguma idéia de como resolver isso obrigado
Responder1
o problema ocorreu com configurações incorretas de proxy na janela de comando HTTPS_PROXY=configurações de proxy do navegador
Responder2
DR
Experimente o curl
comando listado abaixo na Etapa 7. Se isso não funcionar, você provavelmente terá outro problema além do seu curl
comando (como firewall ou proxy).
Copiando solicitações do navegador com cURL
Se você conseguir se conectar a um navegador, uma maneira de eliminar possíveis problemas com seu curl
comando é “copiar” a transação desejada de seu navegador. Chrome, Firefox e Opera têm um console de desenvolvedor que permite isso.
Abra uma nova guia em branco.
No Chrome e no Firefox, pressione F12para abrir o console do desenvolvedor. No Opera, pressione Ctrl+ Shift+ I.
Procure a
Network
opção e selecione-a.Navegue até o URL desejado, por exemplohttps://registry.terraform.io/.well-known/terraform.json.
Você deve acabar vendo algo semelhante ao seguinte:
ex. Transações de rede
Selecione a transação desejada, clique com o botão direito e selecione a opção
Copy as cURL
(para Chrome, useCopy as cURL (cmd)
).ex. Copiar como cURL
Se você colar o conteúdo da área de transferência, deverá ter uma cópia exata da solicitação para
curl
:curl "https://registry.terraform.io/.well-known/terraform.json" -H "authority: registry.terraform.io" -H "upgrade-insecure-requests: 1" -H "user-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" -H "sec-fetch-mode: navigate" -H "accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3" -H "sec-fetch-site: none" -H "accept-encoding: gzip, deflate, br" -H "accept-language: en-US,en;q=0.9" --compressed
Este curl
comando deve replicar exatamente a solicitação feita pelo navegador.
Outros problemas
Supondo que isso não resolva o problema, você terá que investigar outros motivos pelos quais essa solicitação pode estar falhando, como problemas de firewall/proxy ou problemas de certificado.
Use a opção
-k
ou--insecure
para ignorar certificados autoassinados ou inválidos com curl.Considere usar o
--verbose
sinalizador, bem como descartar cabeçalhos HTTP com-D -
, comcurl
para ajudar na solução de problemas.
Emulando um navegador específico
Com base no seu comentário adicional de que suas solicitações cURL (genéricas) ainda estão falhando, é provável que você precise emular o navegador específico que pode se conectar com êxito.
Os navegadores se identificam com umAgente de usuáriostring associada a uma determinada versão desse navegador. Se quiser emular o navegador que pode se conectar ao seu URL, você precisará:
Use as etapas que dou abaixoCopiando solicitações do navegador com cURLno navegador que pode se conectar com sucesso.
Tente substituir o
user-agent
valor na Etapa 7 pelo valor retornado de um site comoQual é o meu navegador(acesse este link no navegador que não tenha problemas para acessar seu link).
Exemplo (Opção 2)
Agente de usuário "genérico" (acima)
-H "user-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
Agente de usuário específico (por exemplo, de What Is My Browser)
-H "user-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0"
É importante observar que o primeiro método (copiar a solicitação) é provavelmente o mais confiável, pois pode capturar cabeçalhos diferentes daqueles user-agent
usados para autorizar uma solicitação.