Skip to main content

SSL — unable to get local issuer certificate (отсутствует SAN)


title: SSL — unable to get local issuer certificate (отсутствует SAN) slug: ts-ssl-unable-to-get-local-issuer tags: [ssl, unable to get local issuer, SAN, subject alternative name, сертификат] domain: Troubleshooting type: Troubleshooting audience: partner-engineer product_versions: "4.x" status: ready related_components: [Мониторинг, ПринтМенеджер] related_pages:

    trebovaniya-k-ssl-sertifikatam related_errors: "[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed:"

    SSL — unable to get local issuer certificate (отсутствует SAN)

    Симптомы

    В логах при синхронизации Мониторинг–ПринтМенеджер или подключении компонентов:

    [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed:
    unable to get local issuer certificate
    

    Причина

    В SSL-сертификате сервера отсутствует поле Subject Alternative Name (SAN). Современные клиенты (Python 3.7+, браузеры) требуют наличия SAN — поле CN (Common Name) уже недостаточно.


    Диагностика

    Проверить, есть ли SAN в сертификате сервера:

    openssl x509 -in /path/to/server.crt -noout -ext subjectAltName
    

    Норма: вывод содержит DNS: или IP: записи. Ошибка: пустой вывод или No extensions in certificate — SAN отсутствует.


    Решение

    Перевыпустить сертификат с полем SAN. В SAN указать все адреса сервера:

    DNS:server.example.com
    DNS:server
    IP:10.0.0.1
    

    После перевыпуска переустановить с новым сертификатом:

    sudo curl -L https://s3.printum.io/box/monitoring/install.sh | \
      sudo -E SSL_CERT=/path/server.crt \
           SSL_KEY=/path/server.key \
           SSL_CERT_CA=/path/ca.crt bash -s agent
    

    Если нет возможности перевыпустить сертификат — перейти на автоматические сертификаты (установка без SSL-параметров). Автоматические сертификаты содержат SAN и не вызывают этой ошибки.


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

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

    Вывод содержит SAN с актуальными адресами сервера. Синхронизация завершается без ошибок.


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

    • PKI управляется заказчиком — перевыпуск сертификата требует его участия.
    • После перевыпуска с SAN ошибка сохраняется.

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