¿Cómo especificar el puerto SSL con línea de comando curl?

9

Estoy tratando de probar la conexión SSL en uno de mis servidores. El servidor está detrás de un LB, por lo que está escuchando conexiones SSL en el puerto 8090.

Tengo la --resolveopción de probar cuando hablo con el LB que escucha en el puerto 443.

curl --resolve 'myservice.com:443:1.1.1.1' 'https://myservice.com'

pero cuando lo hago:

curl --resolve 'myservice.com:8090:2.2.2.2' 'https://myservice.com:8090'

curl simplemente ignora el puerto y va con 443. Por supuesto, esto hace que el caché de DNS se pierda y termino usando la IP de DNS pública ...

* Added myservice.com:8090:2.2.2.2 to DNS cache
* About to connect() to myservice.com port 443 (#0)
*   Trying 3.3.3.3...
* Connected to myservice.com (3.3.3.3) port 443 (#0)

¿Cómo puedo forzar a curl para que use el puerto 8090 para una conexión SSL?

Gracias.

Nicolas GUILLAUME
fuente
1
Extraño ... funciona como se esperaba para mí en curl 7.22.0 (x86_64-pc-linux-gnu) libcurl / 7.22.0 OpenSSL / 1.0.1 zlib / 1.2.3.4 libidn / 1.23 librtmp / 2.3
Michael - sqlbot
Interesante, voy a actualizar mi curl, parece que instalé la versión 7.29DEV la última vez (ese podría ser el problema). Gracias por probar
Nicolas GUILLAUME
Bien, el problema está solucionado, en realidad provenía de una herramienta que utilicé para construir la solicitud de rizo que estaba soltando el encabezado ... Gracias por su tiempo. Por favor, publique una respuesta para que pueda aceptarla :)
Nicolas GUILLAUME
Gracias, no pareció una gran respuesta, pero al menos te hizo buscar en diferentes lugares para encontrar tu problema.
Michael - sqlbot

Respuestas:

1

Probado con curl 7.22.0 (x86_64-pc-linux-gnu) libcurl / 7.22.0 OpenSSL / 1.0.1 zlib / 1.2.3.4 libidn / 1.23 librtmp / 2.3, el --resolveencabezado funciona como se esperaba con https y un puerto no estándar especificado en ambos lugares.

Michael - sqlbot
fuente
3

Si --resolveno funciona, puede especificar el encabezado Host (es posible que deba suprimir las advertencias del certificado -k):

curl -k -H 'Host: myservice.com' 'https://2.2.2.2:8090'

o con términos más detallados:

curl --insecure --header 'Host: myservice.com' 'https://2.2.2.2:8090'
Mathias R. Jessen
fuente