Skip to main content

Ошибка проверки SSL-сертификата: Hostname mismatch

Симптом

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

[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed:
Hostname mismatch, certificate is not valid for '<адрес>'

Возможные проявления:

  • не работает синхронизация Мониторинга и ПринтМенеджера;
  • CUPS не создаёт принтеры;
  • встроенное приложение не подключается к серверу.

Причина

Компонент обращается к серверу по адресу, который отсутствует в сертификате (CN или Subject Alternative Name).

Типичные ситуации:

  • система была установлена по hostname, а сертификат выпущен для IP-адреса (или наоборот);
  • после обновления изменился адрес сервера, а сертификат не был перевыпущен;
  • в переменной MON_HOSTNAME или MONITORING_ADDRESS указан неверный адрес;
  • при использовании собственных сертификатов отсутствует необходимый CN или SAN;
  • в кластерной конфигурации или филиальной сети один сертификат используется для нескольких серверов.

Диагностика

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

openssl s_client -connect <адрес_сервера>:<порт> </dev/null 2>/dev/null | openssl x509 -noout -subject -ext subjectAltName

Сравните результат с адресом, по которому компонент обращается к серверу.

Если Мониторинг и ПринтМенеджер установлены на разных серверах:

grep MONITORING_ADDRESS /opt/printmanager/.env

Если Мониторинг и ПринтМенеджер установлены на одном сервере — проверьте значение 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

Кластер и филиальная сеть

Каждый сервер должен использовать собственный сертификат. Все сертификаты должны быть выпущены одним удостоверяющим центром (CA).

См. также

  • Требования к сертификатам безопасности
  • Как обновить Printum

Ключевые слова

Hostname mismatch, certificate is not valid for, certificate verify failed, SSL, SAN, CN, MONITORING_ADDRESS, EXT_HOSTNAME, сертификат, hostname, обновление

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