Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пользовательский центр сертификации (ЦС) позволяет добавлять до 10 сертификатов в кодировке Base64 в хранилище доверия узла. Эта функция часто требуется, когда центры сертификации (ЦС) должны присутствовать на узле, например при подключении к частному реестру.
В этой статье показано, как создать пользовательские ЦС и применить их к кластерам AKS.
Note
Функция пользовательского центра сертификации добавляет ваши пользовательские сертификаты в хранилище доверенных узла AKS. Сертификаты, добавленные с помощью этой функции, недоступны для контейнеров, работающих в модулях pod. Если вам нужны сертификаты внутри контейнеров, их необходимо добавить отдельно, добавив их в образ, используемый модулями pod или во время выполнения с помощью скриптов и секрета.
Prerequisites
- Подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись.
- Azure CLI версии 2.72.0 или более поздней версии, установленной и настроенной. Чтобы найти версию CLI, выполните
az --versionкоманду. Если вам нужно установить или обновить, см. статью "Установка Azure CLI". - Строка сертификата в кодировке Base64 или текстовый файл с сертификатом.
Limitations
- Пулы узлов Windows не поддерживаются.
- Установка разных ЦС в одном кластере не поддерживается.
Создание файла сертификата
Создайте текстовый файл, содержащий до 10 пустых строк, разделенных сертификатами. При передаче этого файла в кластер сертификаты устанавливаются в хранилищах доверия узла AKS.
Пример текстового файла:
-----BEGIN CERTIFICATE----- cert1 -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- cert2 -----END CERTIFICATE-----
Прежде чем перейти к следующему шагу, убедитесь, что пробелы в текстовом файле отсутствуют, чтобы избежать ошибок.
Передача пользовательских корневых сертификатов в кластер AKS
Передайте сертификаты в кластер с помощью команды
az aks createилиaz aks update, установив--custom-ca-trust-certificatesв имя вашего файла сертификата.# Create a new cluster az aks create \ --resource-group <resource-group-name> \ --name <cluster-name> \ --node-count 2 \ --custom-ca-trust-certificates <path-to-certificate-file> \ --generate-ssh-keys # Update an existing cluster az aks update \ --resource-group <resource-group-name> \ --name <cluster-name> \ --custom-ca-trust-certificates <path-to-certificate-file>Note
Эта операция активирует обновление модели системы, чтобы убедиться, что все существующие узлы имеют установленные одинаковые центры сертификации (ЦС) для корректного развертывания. AKS создает новые узлы, освобождает существующие узлы, удаляет их и заменяет узлами, на которых установлен новый набор сертификатов.
Убедитесь, что Центры Сертификации установлены
Убедитесь, что ЦС установлены с помощью команды
az aks show.az aks show --resource-group <resource-group-name> --name <cluster-name> | grep securityProfile -A 4В выходных данных раздел
securityProfileдолжен содержать настраиваемые сертификаты ЦС. Рассмотрим пример."securityProfile": { "azureKeyVaultKms": null, "customCaTrustCertificates": [ "values"
Устранение ошибок форматирования пользовательских ЦС
Добавление сертификатов в кластер может привести к ошибке, если файл с сертификатами не отформатирован должным образом. Может появиться ошибка, аналогичная следующему примеру:
failed to decode one of SecurityProfile.CustomCATrustCertificates to PEM after base64 decoding
Если возникла эта ошибка, убедитесь, что входной файл не имеет дополнительных новых строк, пробелов или данных, отличных от правильно отформатированных сертификатов, как показано в примере файла.
Устранение ошибок пользовательского сертификата ЦС X.509, подписанного неизвестным центром
AKS требует, чтобы сертификаты были правильно отформатированы и закодированы в кодировке Base64. Убедитесь, что переданные ЦС правильно закодированы в кодировке Base64 и что файлы с ЦС не имеют разрывов строк CRLF.
Перезапустите контейнер для получения новых сертификатов
Если containerd не загружает новые сертификаты, выполните команду systemctl restart containerd из оболочки узла. После перезапуска containerd контейнерный рантайм должен получить новые сертификаты.
Связанный контент
Более подробную информацию о рекомендациях по безопасности AKS см. в статье Рекомендации по обеспечению безопасности кластера и обновления в службе Azure Kubernetes (AKS).