Puedo conectarme a lo siguiente https://registry.terraform.io/.well-known/terraform.json usando un navegador
Cuando intento conectarme desde la línea de comando
curl: (7) No se pudo conectar al puerto 443 de registro.terraform.io: se agotó el tiempo de espera
alguna idea de como solucionarlo gracias
Respuesta1
El problema fue con la configuración incorrecta del proxy en la ventana de comando HTTPS_PROXY=configuración del proxy desde el navegador
Respuesta2
TL;DR
Pruebe el curl
comando que se enumera a continuación en el Paso 7. Si eso no funciona, es probable que tenga otro problema además del curl
comando (como un firewall o proxy).
Copiar solicitudes del navegador con cURL
Si puede conectarse con un navegador, una forma de eliminar posibles problemas con su curl
comando es "copiar" la transacción deseada desde su navegador. Chrome, Firefox y Opera tienen una consola de desarrollador que lo permite.
Abra una nueva pestaña en blanco.
En Chrome y Firefox, presione F12para abrir la consola del desarrollador. En Opera, presione Ctrl+ Shift+ I.
Busque la
Network
opción y selecciónela.Navegue a la URL deseada, por ejemplohttps://registry.terraform.io/.well-known/terraform.json.
Deberías terminar viendo algo similar a lo siguiente:
ex. Transacciones de red
Seleccione la transacción deseada, haga clic derecho y seleccione la opción
Copy as cURL
(para Chrome, useCopy as cURL (cmd)
).ex. Copiar como cURL
Si pega el contenido del portapapeles, debería tener una copia exacta de la solicitud de
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 debería replicar exactamente la solicitud realizada por el navegador.
Otros asuntos
Suponiendo que esto no resuelve el problema, tendrá que buscar otras razones por las que esta solicitud podría estar fallando, como problemas de firewall/proxy o problemas de certificado.
Utilice la opción
-k
o--insecure
para ignorar los certificados autofirmados o no válidos con curl.Considere usar la
--verbose
bandera, así como volcar los encabezados HTTP con-D -
, paracurl
ayudar en la resolución de problemas.
Emular un navegador específico
Según su comentario adicional de que sus solicitudes de cURL (genéricas) aún fallan, es probable que necesite emular el navegador específico que puede conectarse correctamente.
Los navegadores se identifican con unAgente de usuariocadena asociada con una versión determinada de ese navegador. Si desea emular el navegador que puede conectarse a su URL, deberá:
Utilice los pasos que doy a continuaciónCopiar solicitudes del navegador con cURLen el navegador que pueda conectarse exitosamente.
Intente reemplazar el
user-agent
valor en el Paso 7 con el valor devuelto por un sitio como¿Cuál es mi navegador?(visite este enlace en el navegador que no tendrá problemas para acceder a su enlace).
Ejemplo (opción 2)
Agente de usuario "genérico" (arriba)
-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 usuario específico (por ejemplo, de ¿Cuál es mi navegador)?
-H "user-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0"
Es importante tener en cuenta que el primer método (copiar la solicitud) es probablemente el más confiable, ya que puede capturar encabezados distintos a los user-agent
que se utilizan para autorizar una solicitud.