Допустим, сайт сбалансирован по нагрузке между несколькими серверами. Я хочу запустить команду, чтобы проверить, работает ли она, например curl DOMAIN.TLD
. Итак, чтобы изолировать каждый IP-адрес, я указываю IP-адрес вручную. Но многие веб - сайты могут быть размещены на сервере, так что я по- прежнему обеспечивает заголовок узла, например: curl IP_ADDRESS -H 'Host: DOMAIN.TLD'
. В моем понимании эти две команды создают один и тот же HTTP-запрос. Единственное отличие состоит в том, что в последнем я вынимаю часть поиска DNS из cURL и делаю это вручную (пожалуйста, исправьте меня, если я ошибаюсь).
Пока все хорошо. Но теперь я хочу сделать то же самое для URL HTTPS. Опять же, я мог бы проверить это так curl https://DOMAIN.TLD
. Но я хочу указать IP вручную, поэтому я запускаю curl https://IP_ADDRESS -H 'Host: DOMAIN.TLD'
. Теперь я получаю ошибку cURL:
curl: (51) SSL: certificate subject name 'DOMAIN.TLD' does not match target host name 'IP_ADDRESS'.
Конечно, я могу обойти это, сказав cURL, чтобы он не заботился о сертификате (опция -k), но он не идеален.
Есть ли способ изолировать подключаемый IP-адрес от хоста, сертифицированного по SSL?
Host
заголовку, поэтому --resolve
это правильный способ закрепления IP-адреса.