web-dev-qa-db-fra.com

Comment spécifier le port SSL avec la ligne de commande de commande?

J'essaie de tester la connexion SSL sur l'un de mes serveurs. Le serveur est derrière un LB afin qu'il soit écoutant pour les connexions SSL sur le port 8090.

J'ai utilisé le --resolve Option de test lorsque vous parlez à la LB qui écoute sur le port 443.

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

mais quand je fais:

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

curl ignore simplement le port et va avec 443. Bien sûr, cela provoque la manquant du cache DNS et je me retrouve à l'aide de la norme DNS publique ...

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

Comment puis-je forcer la boucle d'utiliser le port 8090 pour une connexion SSL?

Merci.

8
Nicolas GUILLAUME

Testé avec 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 LIBRETMP/2.3, le --resolve L'en-tête fonctionne comme prévu avec HTTPS et un port non standard spécifié dans les deux endroits.

1
Michael - sqlbot

Si --resolve ne fonctionne pas, vous pouvez spécifier l'en-tête d'hôte (vous pourriez avoir besoin d'avertissements de certificat Su Supprand avec -k):

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

ou avec plus de termes verbeux:

curl --insecure --header 'Host: myservice.com' 'https://2.2.2.2:8090'
3