Ошибка сертификата ssl при выполнении запроса cURL на IP-адрес

Я пытаюсь отправить запрос cURL на сервер с IP-адресом xxxx. Это часть системы мониторинга здоровья. На сервере я настроил виртуальные хосты для subdomain.example.com на портах 80 и 443. Для сертификата ssl я использую подстановочный сертификат *.example.com, который я использую на этом сервере, а также на нескольких других серверах.

Когда я пытаюсь свернуться http://x.x.x.x он получает ответ соответственно. Но когда я скручиваюсь https://x.x.x.x это дает следующую ошибку сертификата:

curl: (51) SSL: имя субъекта сертификата '*.example.com' не соответствует имени целевого хоста 'xxxx'

Я знаю, что это потому, что сертификат относится к доменному имени, и я пытаюсь отправить запрос, используя IP-адрес. Но, как я уже сказал, у меня есть ограничение (мониторинг работоспособности балансировщика нагрузки в стойке).

Есть ли работа вокруг??

2 ответа

Решение

Я сделаю это новым ответом, поскольку он идет совсем в другом направлении. На самом деле он не отвечает на поставленный вопрос, но, возможно, это направление, в котором должен искать ОП.

Обычная конфигурация при использовании балансировщика нагрузки заключается в том, что сертификат SSL вообще не находится на веб-сервере, а вместо этого SSL передается балансировщику нагрузки.

Конечный пользователь делает HTTPS-запрос к балансировщику нагрузки. Балансировщик нагрузки разворачивает SSL и перенаправляет запрос через незашифрованный HTTP на веб-сервер с заголовком, который сообщает веб-серверу, что исходный запрос был зашифрован. (важно для встраивания URL-адресов в ответ и для предотвращения предоставления защищенного контента через http).

Вы можете использовать доменное имя как обычно, но переопределить преобразователь следующим образом:

curl -v --resolve subdomain.example.com:443:x.x.x.x https://subdomain.example.com/

Хотя может быть неловко поддерживать множество таких отображений. Вы можете предпочесть просто игнорировать несоответствие сертификата:

curl --insecure https://subdomain.example.com/

Если вы хотите, вы можете использовать --insecure --verbose и проанализируйте сообщения, чтобы убедиться, что сертификат относится к ожидаемому домену, но это, вероятно, больше работы, чем использование --resolve

Другие вопросы по тегам