Skip to main content

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.

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