Что это значит

Программа подключилась по TLS и не смогла проверить, кто выпустил сертификат сервера. Почти всегда это внутренний центр сертификации компании: браузеры сотрудников ему доверяют через домен, а серверы Linux и контейнеры о нём не знают.

Где встречается: containerd не скачивает образ из внутреннего реестра (ImagePullBackOff), сервис не подключается к Keycloak, хранилищу или поиску по https, curl не открывает внутренний адрес.

Как проверить

  1. Кто выпустил сертификат и вся ли цепочка отдаётся:
openssl s_client -connect <адрес>:443 -showcerts </dev/null | grep -E "s:|i:"
  1. Есть ли корневой сертификат в доверенных на узле: /etc/ssl/certs (Debian, Astra) или /etc/pki/ca-trust (РЕД ОС).
  2. Для контейнера: доверенные сертификаты внутри образа свои, системные с узла туда не попадают.

Что сделать

  1. На узлах добавить корневой сертификат: update-ca-certificates или update-ca-trust, затем перезапустить containerd.
  2. Для реестра образов можно указать сертификат точечно в настройках containerd для этого реестра.
  3. В контейнеры сервисов передавать корневой сертификат через том или секрет и подключать его к доверенным при старте.
  4. Если сервер отдаёт не всю цепочку, а только свой сертификат, исправлять это на сервере: см. статью про PKIX.