SSL — self signed certificate in certificate chain
title: SSL — self signed certificate in certificate chain
slug: ts-ssl-self-signed-in-chain
tags: [ssl, self signed, сертификат, цепочка, CA]
domain: Troubleshooting
type: Troubleshooting
audience: partner-engineer
product_versions: "4.x"
status: ready
related_components: [Мониторинг, ПринтМенеджер]
related_pages:
SSL — self signed certificate in certificate chain
Симптомы
В логах ПринтМенеджер при синхронизации с М:
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed:
self signed certificate in certificate chain
Синхронизация Мониторинг–ПринтМенеджер не работает.
Причина
В файл server.crt включено содержимое корневого сертификата (CA). Это нарушает структуру цепочки доверия — корневой сертификат должен быть отдельным файлом (ca.crt), а не частью серверного сертификата.
Диагностика
Проверить, сколько сертификатов содержится в файле server.crt:
grep -c "BEGIN CERTIFICATE" /path/to/server.crt
Норма: 1 (серверный сертификат) или 2 (серверный + промежуточный CA). Ошибка: 3 и более — скорее всего, включён корневой сертификат.
Решение
Разделить сертификаты:
server.crt— только серверный сертификат (и промежуточный CA, если есть).ca.crt— только корневой сертификат.
Переустановить с корректно разделёнными файлами:
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
Как проверить результат
cd /opt/printmanager
sudo docker-composedocker logs printmanager-celery-print-queue --tail=50 | grep -i ssl
Ошибок SSL нет. Синхронизация завершается успешно.
Когда эскалировать
- Структура сертификатов исправлена, но ошибка сохраняется.
- Неизвестно, какой сертификат является корневым — потребуется помощь владельца PKI.