Como especificar a porta SSL com a linha de comando curl?

8

Estou tentando testar a conexão SSL em um dos meus servidores. O servidor está atrás de um LB, então ele está escutando conexões SSL na porta 8090.

Eu usei a opção --resolve para testar ao falar com o LB que escuta na porta 443.

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

mas quando eu faço:

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

curl simplesmente ignora a porta e vai com 443. Claro, isso faz com que o cache de DNS perca e eu acabar usando o IP de DNS público ...

* 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)

Como posso forçar o curl a usar a porta 8090 para uma conexão SSL?

Obrigado.

    
por Nicolas GUILLAUME 01.10.2013 / 02:50

2 respostas

1

Testado com curl 7.22.0 (x86_64-pc-linux-gnu) libcurl / 7.22.0 OpenSSL / 1.0.1 libl / 1.2.3.4 libidn / 1.23 librtmp / 2.3, o --resolve funciona como esperado com https e uma porta não padrão especificada em ambos os lugares.

    
por 02.10.2013 / 02:22
3

Se --resolve não estiver funcionando, você poderá especificar o cabeçalho do Host (talvez seja necessário suprimir os avisos de certificado com -k ):

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

ou com termos mais detalhados:

curl --insecure --header 'Host: myservice.com' 'https://2.2.2.2:8090'
    
por 02.10.2013 / 01:09

Tags