Менеджер сертификатов
На этой странице
На странице Менеджер сертификатов можно создать, отредактировать, удалить или просмотреть ранее созданные менеджеры сертификатов (ClusterIssuers).
Чтобы добавить Менеджер сертификатов нажмите на кнопку + Добавить Менеджер сертификатов.
В открывшемся окне необходимо заполнить:
- Название
- Спецификацию объекта. Из выпадающего списка выберите тип. На текущий момент доступен ACME и Vault. При необходимости задайте лейблы.
Настройка ACME
Для настройки вы должны иметь учетную запись в ACME (Automated Certificate Management Environment).
Заполните сведения о сервере ACME. Например: https://acme-v02.api.letsencrypt.org/directory
Введите email, который связан с учетной записью ACME. Определите, нужно ли пропускать проверку TLS.
Если пропустить проверку TLS, то запросы к серверу ACME не будут подтверждены сертификатом TLS.(т.е. будут разрешены небезопасные соединения). Включайте этот параметр только в средах разработки.
В части Ключ учетной записи ACME необходимо ввести имя и ключ Secret.
Обозначьте solvers: выберите тип солвера: HTTP01 или DNS01.
- Для HTTP01 заполните поле ClassIngress и нажмите кнопку Добавить.
Может быть использован, если:
- Ваш провайдер не блокирует порт 80;
- Ингресс контроллер доступен из интернета по 80 порту;
- Вы не используете сертификаты с подстановкой (wildcard-сертификаты).
Введите класс Ингресса (ClassIngress), который должен быть использован для решения Challenge от Let’s Encrypt. Посмотреть, какие ClassIngress есть в кластере можно с помощью команды:
kubectl get ingressclass -A
Если не указать ClassIngress, будет использован дефолтный класс.
- Для DNS01/acmeDNS заполните значение хоста. В AccountSecretRef впишите имя и ключ, затем нажмите кнопку Добавить.
Может быть использован, если:
- Вы используете сертификаты с подстановкой (wildcard-сертификаты);
- Есть несколько web-серверов.
Например:
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: example-issuer
spec:
acme:
solvers:
- dns01:
acmeDNS:
host: https://acme.example.com
accountSecretRef:
name: acme-dns
key: acmedns.json
- Для DNS01/rfc2136 заполните значение Nameserver и TsigAlgorithm. В TsigSecretSecretRef впишите имя и ключ, затем нажмите кнопку Добавить. Может быть использован, если у вас есть:
- Сервер DNS, настроенный с поддержкой протокола RFC2136;
- Доступ к данным (ключи TSIG) для авторизации обновлений DNS.
Например:
rfc2136:
nameserver: 1.2.3.4:53
tsigKeyName: example-com-secret
tsigAlgorithm: HMACSHA512
tsigSecretSecretRef:
name: tsig-secret
key: tsig-secret-key
-
tsigKeyName - имя ключа вашей TSIG аутентификации (например,
example-key
). -
tsigAlgorithm - алгоритм, используемый для создания ключа TSIG (например,
hmac-md5
). -
tsigSecretSecretRef.name - секрет, содержащий секретный ключ для TSIG аутентификации.
-
Для DNS01/webhook заполните данные Cert-менеджера, подставляя в поля значение GroupName, SolverName и Configraw, затем нажмите кнопку Добавить.
Например:
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: example-issuer
spec:
acme:
...
solvers:
- dns01:
webhook:
groupName: $WEBHOOK_GROUP_NAME
solverName: $WEBHOOK_SOLVER_NAME
config:
...
<webhook-specific-configuration>
Подробнее о настройке TLS.
Настройка Vault
Для настройки вы должны иметь учетную запись в vault. Согласно официальной документации Cert Manager рекомендуемый способ интеграции для текущей версии - ServiceAccountRef. Поэтому для интеграции выберите ServiceAccount из выпадающего списка. ServiceAccount должен быть создан в неймспейсе cert-manager и иметь в неймспейсе cert-manager роль vault-issuer, соответствующую правам:
rules:
- apiGroups: ['']
resources: ['serviceaccounts/token']
resourceNames: ['vault-issuer']
verbs: ['create']
На текущий момент создание roles и clusterroles недоступно из интерфейса платформы. Для создания роли необходимо скачать кубконфиг кластера, обратиться к кластеру через командную строку и загрузить манифест с соответствующей ролью. Созданные роли отображатся в списке доступных ролей при создании ServiceAccount.
После выбора ServiceAccount в поле mountPath заполните путь монтирования Vault для использования при аутентификации в Vault. Пример: /v1/auth/kubernetes
.
В поле Роль пропишите роль пользователя на стороне Vault, например: my-app-1
.
В поле Path пропишите путь к монтируемому пути конечной точки подписи PKI-бэкенда Vault, например: my_pki_mount/sign/my-role-name
.
В поле Сервер пропишите адрес подключения к серверу Vault, например: https://vault.local
.
После завершения настройки менеджера сертификатов нажмите кнопку Сохранить.
Чтобы удалить элемент, нажмите в строке элемента.