tener que conectarse al sitio desde la línea de comando

tener que conectarse al sitio desde la línea de comando

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 curlcomando que se enumera a continuación en el Paso 7. Si eso no funciona, es probable que tenga otro problema además del curlcomando (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 curlcomando es "copiar" la transacción deseada desde su navegador. Chrome, Firefox y Opera tienen una consola de desarrollador que lo permite.

  1. Abra una nueva pestaña en blanco.

  2. En Chrome y Firefox, presione F12para abrir la consola del desarrollador. En Opera, presione Ctrl+ Shift+ I.

  3. Busque la Networkopción y selecciónela.

  4. Navegue a la URL deseada, por ejemplohttps://registry.terraform.io/.well-known/terraform.json.

  5. Deberías terminar viendo algo similar a lo siguiente:

    ex. Transacciones de red

    Firefox Developer Console - Transacciones de red - Captura de pantalla

  6. Seleccione la transacción deseada, haga clic derecho y seleccione la opción Copy as cURL(para Chrome, use Copy as cURL (cmd)).

    ex. Copiar como cURL

    Firefox Developer Console - Transacciones de red - Copiar como cURL - Captura de pantalla

  7. 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 curlcomando 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 -ko --insecurepara ignorar los certificados autofirmados o no válidos con curl.

  • Considere usar la --verbosebandera, así como volcar los encabezados HTTP con -D -, para curlayudar 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á:

  1. Utilice los pasos que doy a continuaciónCopiar solicitudes del navegador con cURLen el navegador que pueda conectarse exitosamente.

  2. Intente reemplazar el user-agentvalor 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-agentque se utilizan para autorizar una solicitud.


información relacionada