Рейтинг:0

Kubernetes: использование промежуточного ЦС, сертификат которого подписан самозаверяющим сертификатом корневого ЦС.

флаг au

Кто-нибудь использует собственные цепочки сертификатов для кластеров Kubernetes?

Есть проблема с такой настройкой, и я был бы признателен за любые идеи о том, как ее решить.

Предположим, у нас есть корневой ЦС, сертификат которого является самоподписанным. Также у нас есть промежуточный ЦС, сертификат которого подписан корневым ЦС. Мы создаем цепочку сертификации (путем объединения обоих контейнеров PEM в один файл) и настраиваем с ее помощью Kubernetes. Почти все работает идеально: Kubernetes работает нормально, клиенты Kubernetes работают нормально, операторы Kubernetes работают нормально... Жизнь удалась.

Но есть одна вещь, которую мы должны иметь в виду. Все Секрет объект, содержащий токены безопасности для ServiceAccount объекты имеют «укороченные» версии сертификата ЦС. «Сокращенная» версия не содержит сертификат Root CA, только Intermediate.

Как я вижу, для большинства библиотек TLS этого достаточно. Программное обеспечение устанавливает TLS-соединение с API-сервером Kubernetes, проверяет, подписан ли сертификат сервера доверенным ЦС (при условии, что сертификат промежуточного ЦС, полученный от связанного Секрет доверяют) и все работает гладко.

Но иногда у нас возникают проблемы.Когда у нас есть часть программного обеспечения (например, оператор Kubernetes или любая другая программа, которая должна взаимодействовать с Kubernetes API Server), которая использует немного более строгую библиотеку TLS, у нас проблемы. В этом случае мы должны предоставить этому инструменту версию цепочки сертификации (содержащую как промежуточный сертификат ЦС, так и корневой), потому что «укороченной» версии, предоставляемой Kubernetes, недостаточно. И это нормально, если мы можем предоставить этому инструменту полную цепочку сертификатов, но иногда это невозможно, поэтому он берет «укороченный» сертификат ЦС из /var/run/secrets/kubernetes.io/serviceaccount/ca.crt и его нелегко убедить взять сертификат ЦС из другого источника. :-(

Мой вопрос заключается в следующем: есть ли способ заставить Kubernetes создавать эти Секрет объектов с полной версией цепочки сертификации? И если есть, вызовет ли это другие трудности (например, если программное обеспечение, которое будет предоставлено с полной цепочкой, даст сбой)? Или, возможно, может быть другой обходной путь?

Заранее спасибо.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.