Skip to main content

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


title: SSL — Hostname mismatch после обновления slug: ts-ssl-hostname-mismatch-pri-obnovlenii tags: [ssl, certificate, hostname mismatch, обновление, сертификат] domain: Troubleshooting type: Troubleshooting audience: partner-engineer product_versions: "4.x" status: ready related_components: [Мониторинг, ПринтМенеджер, Балансировщик] related_pages:

    kak-obnovit-printum

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

    Симптомы

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

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

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


    Причина

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

    • МВо обновлёнвремя собновления новымуказали hostname,переменную сертификат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 printmanager-celery-print-queue-f --tail=50 | grep -i ssl5
    

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


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

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

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

    Как обновить SSL-сертификаты Printum Как работает синхронизация Мониторинга и ПринтМенеджера