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:
- trebovaniya-k-ssl-sertifikatam related_errors:
- "[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed:"
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-compose logs printmanager-celery-print-queue --tail=50 | grep -i ssl
Ошибок SSL нет. Синхронизация завершается успешно.
Когда эскалировать
- Структура сертификатов исправлена, но ошибка сохраняется.
- Неизвестно, какой сертификат является корневым — потребуется помощь владельца PKI.