Корпоративный сертификат
Корпоративный сертификат — готовый конечный сертификат (wildcard или на конкретные домены), который удостоверяющий центр компании уже выписал.
Если у вас есть промежуточный сертификат CA, чтобы платформа сама выписывала конечные сертификаты, эта инструкция не подходит. Используйте Промежуточный сертификат.
Прежде чем перейти к добавлению сертификата в кластер, создайте бэкап. В случае ошибки изменения сертификата в кластере, вы сможете использовать бэкап для отката изменений.
Сценарий добавления корпоративного сертификата в кластер
- Подготовить конечный сертификат.
- Обновить корневой сертификат в неймспейсе
cert-manager. - Разместить конечный сертификат в секрете неймспейса
ingress. - Добавить customvalues в Модуль управления внешними подключениями
shturval-ingress-controller. - Заменить ClusterIssuer и сертификаты для системных Ingress платформы. Корпоративный сертификат задаётся как сертификат по умолчанию в Ingress-контроллере и не прописывается в каждой записи Ingress. Чтобы контроллер его подставил, в записях не должно быть ни ClusterIssuer, ни своих сертификатов.
Создание сертификата
Подготовьте конечный корпоративный сертификат. Инструкция по созданию здесь.
Обновление корневого сертификата
- Когда у вас есть корпоративный сертификат, то в кластере перейдите в неймспейс
cert-manager. В разделе “Хранилище” найдите Configmap с именемroot-ca. На страницеroot-caизмените значение ключаca.crt. В значении должен быть ваш корпоративный сертификат.
Скриншот

Сохраните изменения в Configmap root-ca.
- В неймcпейсе
ingressперейдите в раздел Хранилище, откройте страницу Secrets и создайте секрет с именемcorp-tls, выберите типkubernetes.io/tls.
Скриншот

Размещение сертификата в секрете
Добавьте конечный корпоративный сертификат и его закрытый ключ в Secret corp-tls.
Скриншот

Сохраните Secret corp-tls.
Добавление customvalues в ingress-controller
Чтобы внести изменения в customvalues Модуля управления внешними подключениями (shturval-ingress-controller), используйте объект ShturvalServicePatch (PatchSSC):
- Подготовьте манифест ShturvalServicePatch с требуемым параметром в customvalues, как в приведенном примере ниже.
ShturvalServicePatch
apiVersion: ops.shturval.tech/v1beta2
kind: ShturvalServicePatch
metadata:
name: <имя ресурса>
spec:
shturvalServiceConfigName: shturval-ingress-controller
customvalues:
controller:
extraArgs:
default-ssl-certificate: "ingress/corp-tls"
| Параметр | Описание | Тип данных | Пример |
|---|---|---|---|
metadata.name |
Имя создаваемого PatchSSC | string | shturval-ingress-controller-cert |
- В графическом интерфейсе с помощью импорта манифеста загрузите в кластер ShturvalServicePatch:
- Нажмите на иконку импорта манифестов, расположенную слева от имени пользователя. Загрузите файл с подготовленным манифестом ShturvalServicePatch для shturval-ingress-controller или перетащите манифест в открывшееся окно. Выполните проверку и нажмите Загрузить.
Скриншот

- В кластере перейдите в раздел Сервисы и репозитории на страницу Установленные сервисы, найдите Модуль управления внешними подключениями (
shturval-ingress-controller) и перейдите к управлению. На вкладке Примененные PatchSSC отобразится загруженный ShturvalServicePatch. Когда ShturvalServicePatch будет применен, на вкладке Сервис статус будет Patched.
Скриншот

После настройки Ingress-контроллера выполните инструкцию Добавление в системные сервисы. Потребуется создать Secret, например, с именем corp-tls в неймспейсе сервиса. В ShturvalServicePatch указать созданный секрет и оставить параметр cluster_issuer_name (или аннотацию cert-manager.io/cluster-issuer) пустым.