Я пытаюсь проверить 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-соединения?
Спасибо.
Если --resolve
не работает, вы можете указать заголовок Host (вам может потребоваться подавить предупреждения сертификата с помощью -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'
Протестировано с помощью 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 и нестандартным портом, указанным в обоих местах.