Ошибка проверки SSL-сертификата: Hostname mismatch
СимптомыСимптом
В логах ПринтМенеджерПринтМенеджера или при установке:установке появляется ошибка:
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed:
Hostname mismatch, certificate is not valid for '<адрес>'
СинхронизацияВозможные Мониторинг–ПринтМенеджерпроявления:
Причина
Адрес, по которому компонентКомпонент обращается к серверу,серверу непо совпадаетадресу, скоторый отсутствует в сертификате (CN или Subject Alternative Name (SAN) сертификата.Name).
Типичные ситуации:
Системасистема была установлена по hostname, а сертификат выпущеннадляIPIP-адреса (или наоборот).;Послепосле обновления изменился адрес сервера, а сертификатосталсянестарый.был перевыпущен;ПривустановкепеременнойсMON_HOSTNAMEбалансировщикомиликаждомуMONITORING_ADDRESSсерверууказаннуженневерныйсобственныйадрес;
Диагностика
Проверить,Проверьте, для какого адреса выпущен сертификат:
openssl s_client -connect <адрес_сервера>:<порт> </dev/null 2>/dev/null \
| openssl x509 -noout -subject -ext subjectAltName
СравнитьСравните результат с адресом, по которому идёткомпонент обращение:
обращается к серверу.
Если Мониторинг и ПринтМенеджер установлены на разных серверах:
# Для ПМ — адрес М в .env
grep MONITORING_ADDRESS /opt/printmanager/.env
Если Мониторинг и ПринтМенеджер установлены на одном сервере,сервере проверить— проверьте значение EXT_HOSTNAME в панели администратора Принтменеджера → Настройки → Общие настройки → EXT_HOSTNAME
Если адреса не совпадают — причина найдена.ПринтМенеджера.
Решение
Автоматические сертификаты
Переустановка без SSL-параметров пересоздаёт сертификаты автоматически под текущий адрес:
# М
sudo curl -L https://s3.printum.io/box/monitoring/install.sh | sudo -E bash
# ПМ
sudo curl -L https://s3.printum.io/distrib/printum-printmanager/install.sh | sudo -E bash
Собственные сертификаты
Перевыпустить сертификат для актуального адреса сервера. CN и SAN должны содержать адрес, по которому компонент обращается к серверу. Затем обновить с новыми файлами:
sudo curl -L https://s3.printum.io/box/monitoring/install.sh | \
sudo -E SSL_CERT=/path/cert.crt \
SSL_KEY=/path/cert.key \
SSL_CERT_CA=/path/ca.crt bash -s agent
БалансировщикКластер и филиальная сеть
ПриКаждый установке схемы с балансировщиком или филиальной сетью у каждого серверасервер должен бытьиспользовать собственный ssl-сертификат, выпущенный для его адреса и единый корневой ca-сертификат. ОдинВсе сертификатсертификаты надолжны всебыть серверывыпущены неодним подходит.удостоверяющим центром (CA).
См.
Как проверить результат
sudo docker logs printmanager-celery-print-queue --tail=50 | grep -i ssl
Ошибок SSL нет. Синхронизация Мониторинг–ПринтМенеджер завершается успешно.
Когда эскалироватьтакже
ПослеТребованияперевыпускаксертификатасертификатамошибка сохраняется.безопасностиPKIКакуправляетсяобновитьзаказчиком — требуется его участие.
Ключевые слова
Hostname mismatch, certificate is not valid for, certificate verify failed, SSL, SAN, CN, MONITORING_ADDRESS, EXT_HOSTNAME, сертификат, hostname, обновление