Skip to main content

SSL — Hostname mismatch после обновления

Симптомы

В логах ПринтМенеджер после обновления:

[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for '<hostname>'

Синхронизация Мониторинг–ПринтМенеджер не работает.


Причина

Сертификат выпущен для одного адреса (hostname или IP), а обращение после обновления идёт по другому. Типичные ситуации:

  • Во время обновления указали переменную MON_HOSTNAME, в которой допустили ошибку или указали посторонний адрес.
  • При установке использовался IP, а после обновления — hostname (или наоборот).
  • Собственный сертификат не включает нужный Subject Alternative Name.

Диагностика

Проверить, для какого адреса выпущен сертификат М:

openssl s_client -connect <адрес_М>:8001 </dev/null 2>/dev/null | openssl x509 -noout -subject -ext subjectAltName

Сравнить с адресом, по которому ПринтМенеджер обращается к М:

sudo grep MONITORING_ADDRESS /opt/printmanager/.env

Если адреса не совпадают — причина найдена.


Решение

Автоматические сертификаты

В случае использования автоматических сертификатов при установке - обновление без SSL-параметров пересоздаст сертификаты автоматически:

# Для М:
sudo curl -L https://s3.printum.io/box/monitoring/install.sh | sudo -E bash
# или для офлайн метода:
sudo -E ./install.sh

# Для ПМ:
sudo curl -L https://s3.printum.io/distrib/printum-printmanager/install.sh | sudo -E bash
# или для офлайн метода:
sudo -E ./install.sh

Собственные сертификаты

Выпустить новый сертификат для актуального hostname/IP, затем обновить с указанием новых файлов:

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

Self-signed certificate in certificate chain

Если в логах:

certificate verify failed: self signed certificate in certificate chain

Причина: в SSL-сертификат включён корневой сертификат. Использовать сертификат, содержащий только SSL-сертификат и (при необходимости) промежуточный. Корневой сертификат — отдельным файлом в SSL_CERT_CA.


Как проверить результат

cd /opt/printmanager
sudo docker-compose logs -f --tail=5

Ошибок SSL не должно быть. Синхронизация Мониторинг–ПринтМенеджер завершается успешно.


Когда эскалировать

  • После перевыпуска сертификата ошибка сохраняется.
  • Нет возможности выпустить сертификат для нужного hostname.
  • Инфраструктура PKI управляется заказчиком и требует его участия.

Связанные страницы