Как указать порт SSL с помощью командной строки curl?

10

Я пытаюсь проверить соединение SSL на одном из моих серверов. Сервер находится за LB, поэтому он прослушивает SSL-соединения через порт 8090.

У меня есть --resolveвозможность проверить при разговоре с LB, который прослушивает порт 443.

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

но когда я сделаю:

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

curl просто игнорирует порт и переходит к 443. Конечно, это приводит к пропуску кэша DNS, и я в конечном итоге использую общедоступный IP-адрес DNS ...

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

Как я могу заставить curl использовать порт 8090 для соединения SSL?

Спасибо.

Николя Гийом
источник
1
Странно ... работает, как и ожидалось для меня в 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
Майкл - sqlbot
Интересно, что я собираюсь обновить свой локон, похоже, что я установил версию 7.29DEV в прошлый раз (это может быть проблемой). Спасибо за тестирование.
Николас Гийом
Хорошо, проблема исправлена, на самом деле она исходила от инструмента, который я использую для создания запроса curl, который отбрасывал заголовок ... Спасибо за ваше время. Пожалуйста, оставьте ответ, чтобы я мог принять его :)
Nicolas GUILLAUME
Спасибо, это не очень похоже на ответ, но, по крайней мере, это заставило вас поискать проблему в разных местах.
Майкл - sqlbot

Ответы:

2

Протестировано с помощью 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, --resolveзаголовок работает должным образом с https и нестандартным портом указано в обоих местах.

Майкл - sqlbot
источник
3

Если --resolveне получается, вы можете указать заголовок хоста (может потребоваться скрыть предупреждения сертификатов -k):

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

или с более подробными терминами:

curl --insecure --header 'Host: myservice.com' 'https://2.2.2.2:8090'
Матиас Р. Ессен
источник