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

10

J'essaie de tester la connexion SSL sur l'un de mes serveurs. Le serveur est derrière un LB, il écoute donc les connexions SSL sur le port 8090.

J'ai utilisé l' --resolveoption pour tester lorsque je parle au 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 le cache DNS à manquer et je finis par utiliser l'IP DNS public ...

* 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 curl à utiliser le port 8090 pour une connexion SSL?

Merci.

Nicolas GUILLAUME
la source
1
Étrange ... fonctionne comme prévu pour moi dans 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
Intéressant, je vais mettre à niveau ma boucle, il semble que j'ai installé la version 7.29DEV la dernière fois (cela pourrait être le problème). Merci pour les tests.
Nicolas GUILLAUME
D'accord, le problème est résolu, il provenait en fait d'un outil que j'utilise pour construire la requête curl qui supprimait l'en-tête ... Merci de votre temps. Merci de poster une réponse pour que je puisse l'accepter :)
Nicolas GUILLAUME
Merci, cela n'a pas semblé être une réponse, mais au moins cela vous a fait chercher dans différents endroits pour trouver votre problème.
Michael - sqlbot

Réponses:

2

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 librtmp / 2.3, l'en- --resolvetête fonctionne comme prévu avec https et un port non standard spécifié aux deux endroits.

Michael - sqlbot
la source
3

Si --resolvene fonctionne pas, vous pouvez spécifier l'en-tête Host (vous devrez peut-être supprimer les avertissements de certificat avec -k):

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

ou avec des termes plus verbeux:

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