Установка пользовательских сертификатов для Web панели
Предварительная подготовка
Вам понадобится:
- Админский kubeconfig управляющего кластера
- Предварительно сгенерированные сертификат, ключ, CA сертификат
- Настроенный kubectl
Внимание!
При выписывании сертификата обязательно необходимо указать доменное имя в CN и SAN.
Внимание!
При использовании промежуточных центров сертификации (Intermediate CAs) необходимо включить всю цепочку доверия (включая все промежуточные сертификаты), в файл ca.crt.
Заметка
Все действия выполняйте, используя админский kubeconfig, так как в момент обновления Боцман может быть недоступен.
Админский kubeconfig можно получить:
1. С АРМ Администратора из директории .bootsmanctl/management/
2. С любого мастер-узла управляющего кластера по пути /etc/kubernetes/admin.conf
Обновление сертификатов
Перед обновлением сертификатов отключите cert-manager, если он включен.
Воспользуйтесь одним из двух способов отключения работы cert-manager:
1. Вручную внесите изменения в конфигурацию работы модуля Rancher, выставив значение параметра ingress:tls:source:secret.
2. Используя kubectl shell управляющего кластера Боцман, введите следующую команду:
kubectl patch Config.addon.bootsman.tech $MGMT_CLUSTER_NAME-rancher --type=merge \
--patch='{"spec":{"values":{"ingress":{"tls":{"source":"secret"}},"privateCA":true}}}'
Перейдите в директорию с сертификатами и переименуйте файлы:
- Сертификат -
tls.crt, - Закрытый ключ -
tls.key, - CA -
ca.crt.
Заметка
Если устанавливается самоподписанный сертификат или сертификат от внутреннего удостоверяющего центра, то файл ca.crt у Вас уже должен быть.
Для сертификатов, подписанных публичным удостоверяющим центром Вам может понадобиться вручную выделить в файл ca.crt цепочку промежуточных сертификатов вплоть до корневого.
Выполните следующую команду:
kubectl create secret generic tls-bootsman-web \
--from-file=tls.crt --from-file=tls.key --from-file=ca.crt \
-n cattle-system --type=kubernetes.io/tls \
--dry-run=client -o yaml | kubectl replace -f -

