ClusterIssuers

ClusterIssuers - ресурсы Kubernetes, представляющие центры сертификации в кластере, которые могут генерировать подлинные сертификаты, выполняя запросы на подпись сертификатов.

На странице ClusterIssuers можно создать, отредактировать, удалить или просмотреть ранее созданные менеджеры сертификатов (ClusterIssuers).

Создание ClusterIssuers

Чтобы добавить Менеджер сертификатов нажмите на кнопку + Добавить ClusterIssuers.

В открывшемся окне необходимо заполнить:

Скриншот

clusterissuertype

  • Имя
  • Спецификацию объекта. Из выпадающего списка выберите тип:
    • ACME;
    • Vault;
    • Корпоративный центр сертификации (CA);
    • Самоподписной (SelfSigned).

При необходимости задайте лейблы.

Настройка ACME

Для настройки вы должны иметь учетную запись в ACME (Automated Certificate Management Environment).

Скриншот

clusterissueracme

  • Заполните сведения о сервере ACME. Например: https://acme-v02.api.letsencrypt.org/directory.
  • Введите email, который связан с учетной записью ACME.
  • Определите, нужно ли пропускать проверку TLS (по умолчанию установлено Нен).

Если пропустить проверку TLS, то запросы к серверу ACME не будут подтверждены сертификатом TLS.(т.е. будут разрешены небезопасные соединения). Включайте этот параметр только в средах разработки.

Обратите внимание! Если в кластер добавлен сертификат ACME, необходимо мониторить работу ACME-сервера. В случае сбоя на сервере, кластеры с сертификатами ACME будут недоступны.

  • При установлении защищенного TLS-соединения вы можете добавить в поле CA Bundle пакет сертификатов центра сертификации. CA Bundle содержит корневой сертификат и промежуточный в формате PEM для проверки подлинности и доверия сертификату сервера ACME.

Обратите внимание! Данные файла CA Bundle должны содержать ----BEGIN CERTIFICATE---- и ----END CERTIFICATE----.

Если CABundle не указан, но проверка TLS-соединения устанавливается, то для проверки соединения используется пакет системных сертификатов внутри контейнера.

В блоке Ключ учетной записи ACME необходимо:

  • Ввести имя и ключ Secret.
  • Добавить solvers. Для этого Нажмите на + рядом с Solvers и выберите тип: HTTP01 или DNS01.
  1. Для HTTP01 заполните поле ClassIngress и нажмите кнопку Добавить.
Скриншот

issuersolver

Может быть использован, если:

  • Ваш провайдер не блокирует порт 80;

  • Ingress контроллер доступен из интернета по 80 порту;

  • Вы не используете сертификаты с подстановкой (wildcard-сертификаты).

  • Введите класс Ingress (ClassIngress), который должен быть использован для решения Challenge от Let’s Encrypt.

Посмотреть, какие ClassIngress есть в кластере
kubectl get ingressclass -A

Если не указать ClassIngress, будет использован дефолтный класс.

  1. Для DNS01/acmeDNS заполните значение хоста. В AccountSecretRef впишите имя и ключ, затем нажмите кнопку Добавить.
Скриншот

issuersolver1

Может быть использован, если:
  • Вы используете сертификаты с подстановкой (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
  1. Для DNS01/rfc2136 заполните значение Nameserver и TsigAlgorithm. В TsigSecretSecretRef впишите имя и ключ, затем нажмите кнопку Добавить.
Скриншот

issuersolver2

Может быть использован, если у вас есть: - Сервер 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 аутентификации.
  1. Для DNS01/webhook заполните данные Cert-Manager, подставляя в поля значение GroupName, SolverName и Config, затем нажмите кнопку Добавить.
Скриншот

issuersolver3

Пример
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>

Настройка Vault

Для настройки вы должны иметь учетную запись в vault. Согласно официальной документации Cert Manager рекомендуемый способ интеграции для текущей версии - ServiceAccountRef. Поэтому для интеграции выберите ServiceAccount из выпадающего списка.

Скриншот

clusterissuervault

ServiceAccount должен быть создан в неймспейсе cert-manager и иметь в неймспейсе cert-manager роль vault-issuer.

Права для роли vault-issuer
rules:
  - apiGroups: ['']
    resources: ['serviceaccounts/token']
    resourceNames: ['vault-issuer']
    verbs: ['create']
  • После выбора ServiceAccount в поле mountPath заполните путь монтирования Vault для использования при аутентификации в Vault. Пример: /v1/auth/kubernetes.
  • В поле Роль пропишите роль пользователя на стороне Vault, например: my-app-1.
  • В поле Path пропишите путь к монтируемому пути конечной точки подписи PKI-backend Vault, например: my_pki_mount/sign/my-role-name.
  • В поле Сервер пропишите адрес подключения к серверу Vault, например: https://vault.local.
  • С целью проверки подлинности и доверия сертификатам сервера Vault, вы можете указать CA Bundle, содержащий корневой и промежуточный сертификаты в формате PEM.

Доступны два способа включения CA Bundle в ClusterIssuers:

  1. Выберите Файл в блоке CA Bundle, чтобы ввести данные файла CA Bundle. Обратите внимание! Данные файла CA Bundle должны содержать ----BEGIN CERTIFICATE---- и ----END CERTIFICATE----.
  2. Выберите Ключ к CA Bundle в блоке CA Bundle, чтобы загрузить CA Bundle с указанием ссылки на Secret в вашем кластере. Выберите Secret, который содержит CA Bundle, и укажите ключ доступа к нему.

Если CABundle не указан в ClusterIssuer, пакет сертификатов cert-manager используется для проверки TLS-соединения.

После завершения настройки менеджера сертификатов нажмите кнопку Сохранить.

Корпоративный центр сертификации (CA)

CA (Certificate Authority) ClusterIssuers должны быть настроены с сертификатом и закрытым ключом центра сертификации, которые хранятся в Secret. Перед добавлением CA ClusterIssuer в неймспейс, создайте Secret, содержащий сертификат и ключ.

Обратите внимание!

  • Secret должен располагаться в неймспейсе cert-manager.
  • В Secret наименование полей для сертификата, ключа должны быть строго: tls.crt и tls.key. По этим названиям cert-manager получит данные сертификата и ключа центра сертификации.
  • Данные в tls.crt и tls.key должны быть закодированы в base64.
Пример Secret
apiVersion: v1
kind: Secret
metadata:
  name: secretname
  namespace: cert-manager
data:
  tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMrVENDQWVHZ0F3SUJBZ0lKQUtQR3dLRGwvNUhuTUEwR0NTcUdTSWIzRFFFQkN3VUFNQk14RVRBUEJnTlYKQkFNTUNHcHZjMmgyWVc1c01CNFhEVEU1TURneU1qRTJNRFUxT0ZvWERUSTVNRGd4T1RFMk1EVTFPRm93RXpFUgpNQThHQTFVRUF3d0lhbTl6YUhaaGJtd3dnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCCkFRQ3doU0IvcVc2L2tMYjJ6cHUrRUp2RDl3SEZhcStRQS8wSkgvTGxseW83ekFGeCtISHErQ09BYmsrQzhCNHQKL0hVRXNuczVSTDA5Q1orWDRqNnBiSkZkS2R1UHhYdTVaVllua3hZcFVEVTd5ZzdPU0tTWnpUbklaNzIzc01zMApSNmpZbi9Ecmo0eFhNSkVmSFVEcVllU1dsWnIzcWkxRUZhMGM3ZlZEeEgrNHh0WnROTkZPakg3YzZEL3ZXa0lnCldRVXhpd3Vzc2U2S01PV2pEbnYvNFZyamVsMlFnVVlVYkhDeWVaSG1jdGkrSzBMV0Nmby9SZzZQdWx3cmJEa2gKam1PZ1l0MzBwZGhYME9aa0F1a2xmVURIZnA4YmpiQ29JMnRhWUFCQTZBS2pLc08zNUxBRVU3OUNMMW1MVkh1WgpBQ0k1VWppamEzVlBXVkhTd21KUEp5dXhBZ01CQUFHalVEQk9NQjBHQTFVZERnUVdCQlFtbDVkVEFaaXhGS2hqCjkzd3VjUldoYW8vdFFqQWZCZ05WSFNNRUdEQVdnQlFtbDVkVEFaaXhGS2hqOTN3dWNSV2hhby90UWpBTUJnTlYKSFJNRUJUQURBUUgvTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCK2tsa1JOSlVLQkxYOHlZa3l1VTJSSGNCdgpHaG1tRGpKSXNPSkhac29ZWGRMbEcxcFpORmpqUGFPTDh2aDQ0Vmw5OFJoRVpCSHNMVDFLTWJwMXN1NkNxajByClVHMWtwUkJlZitJT01UNE1VN3ZSSUNpN1VPbFJMcDFXcDBGOGxhM2hQT2NSYjJ5T2ZGcVhYeVpXWGY0dDBCNDUKdEhpK1pDTkhCOUZ4alNSeWNiR1lWaytUS3B2aEphU1lOTUdKM2R4REthUDcrRHgzWGNLNnNBbklBa2h5SThhagpOVSttdzgvdG1Sa1A0SW4va1hBUitSaTBxVW1Iai92d3ZuazRLbTdaVXkxRllIOERNZVM1TmtzbisvdUhsUnhSClY3RG5uMDM5VFJtZ0tiQXFONzJnS05MbzVjWit5L1lxREFZSFlybjk4U1FUOUpEZ3RJL0svQVRwVzhkWAotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
  tls.key: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBc0lVZ2Y2bHV2NUMyOXM2YnZoQ2J3L2NCeFdxdmtBUDlDUi95NVpjcU84d0JjZmh4CjZ2Z2pnRzVQZ3ZBZUxmeDFCTEo3T1VTOVBRbWZsK0krcVd5UlhTbmJqOFY3dVdWV0o1TVdLVkExTzhvT3praWsKbWMwNXlHZTl0N0RMTkVlbzJKL3c2NCtNVnpDUkh4MUE2bUhrbHBXYTk2b3RSQld0SE8zMVE4Ui91TWJXYlRUUgpUb3grM09nLzcxcENJRmtGTVlzTHJMSHVpakRsb3c1Ny8rRmE0M3Bka0lGR0ZHeHdzbm1SNW5MWXZpdEMxZ242ClAwWU9qN3BjSzJ3NUlZNWpvR0xkOUtYWVY5RG1aQUxwSlgxQXgzNmZHNDJ3cUNOcldtQUFRT2dDb3lyRHQrU3cKQkZPL1FpOVppMVI3bVFBaU9WSTRvMnQxVDFsUjBzSmlUeWNyc1FJREFRQUJBb0lCQUNFTkhET3JGdGg1a1RpUApJT3dxa2UvVVhSbUl5MHlNNHFFRndXWXBzcmUxa0FPMkFDWjl4YS96ZDZITnNlanNYMEM4NW9PbmtrTk9mUHBrClcxVS94Y3dLM1ZpRElwSnBIZ09VNzg1V2ZWRXZtU3dZdi9Fb1V3eHFHRVMvcnB5Z1drWU5WSC9XeGZGQlg3clMKc0dmeVltbXJvM09DQXEyLzNVVVFiUjcrT09md3kzSHdUdTBRdW5FSnBFbWU2RXdzdWIwZzhTTGp2cEpjSHZTbQpPQlNKSXJyL1RjcFRITjVPc1h1Vm5FTlVqV3BBUmRQT1NrRFZHbWtCbnkyaVZURElST3NGbmV1RUZ1NitXOWpqCmhlb1hNN2czbkE0NmlLenUzR0YwRWhLOFkzWjRmeE42NERkbWNBWnphaU1vMFJVaktWTFVqbVlQSEUxWWZVK3AKMkNYb3dNRUNnWUVBMTgyaU52UEkwVVlWaUh5blhKclNzd1YrcTlTRStvVi90U2ZSUUNGU2xsV0d3KzYyblRiVwpvNXpoL1RDQW9VTVNSbUFPZ0xKWU1LZUZ1SWdvTEoxN1pvWjN0U1czTlVtMmRpT0lPSHorcTQxQzM5MDRrUzM5CjkrYkFtVmtaSFA5VktLOEMraS9tek5mSkdHZEJadGIweWtTM2t3OUIxTHdnT3o3MDhFeXFSQ2tDZ1lFQTBXWlAKbzF2MThnV2tMK2FnUDFvOE13eDRPZlpTN3dKY3E0Z0xnUWhjYS9pSkttY0x0RFN4cUJHckJ4UVo0WTIyazlzdQpzTFVrNEJobGlVM29iUUJNaUdtMGtITHVBSEFRNmJvdWZBMUJwZjN2VFdHSkhSRjRMeFJsNzc2akw4UXI4VnpxClpURVBtY0R0T0hpYjdwb2I1Z2IzSDhiVGhYeUhmdGZxRW55alhFa0NnWUVBdk9DdDZZclZhTlQrWThjMmRFYk4Kd3dJOExBaUZtdjdkRjZFUjlCODJPWDRCeGR0WTJhRDFtNTNqN2NaVnpzNzFYOE1TN25FcDN1dkFqaElkbDI3KwpZbTJ1dUUyYVhIbDN5VTZ3RzBETFpUcnVIU0Z5TVI4ZithbHRTTXBDd0s1NXluSGpHVFp6dXpYaVBBbWpwRzdmCk1XbVRncE1IK3puc3UrNE9VNFBHUW9FQ2dZQWNqdUdKbS84YzlOd0JsR2lDZTJIK2JGTHhSTURteStHcm16QkcKZHNkMENqOWF3eGI3aXJ3MytjRGpoRUJMWExKcjA5YTRUdHdxbStrdElxenlRTG92V0l0QnNBcjVrRThlTVVBcAp0djBmRUZUVXJ0cXVWaldYNWlaSTNpMFBWS2ZSa1NSK2pJUmVLY3V3aWZKcVJpWkw1dU5KT0NxYzUvRHF3Yk93CnRjTHAwUUtCZ0VwdEw1SU10Sk5EQnBXbllmN0F5QVBhc0RWRE9aTEhNUGRpL2dvNitjSmdpUmtMYWt3eUpjV3IKU25QSG1TbFE0aEluNGMrNW1lbHBDWFdJaklLRCtjcTlxT2xmQmRtaWtYb2RVQ2pqWUJjNnVGQ1QrNWRkMWM4RwpiUkJQOUNtWk9GL0hOcHN0MEgxenhNd1crUHk5Q2VnR3hhZ0ZCekxzVW84N0xWR2h0VFFZCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
Скриншот Secret

secretca2

Для ClusterIssuer с типом Корпоративный центр сертификации:

Скриншот

clusterissuerca

  • выберите Имя Secret, содержащего сертификат и ключ центра сертификации.
  • добавьте URL-адреса OCSP серверов (ocspServers) при необходимости проверки действительности (статуса) сертификата. Если не указан ни один адрес, сертификат будет выпущен без указания OCSP сервера. Пример URL-адреса сервера: http://ocsp.int-x3.example.org.
  • добавьте URL-адреса сертификатов (issuingCertificateURLs) для указания в выпускаемых сертификатах. URL-адрес должен использовать HTTP протокол, чтобы избежать проблем с проверкой домена, например, http://ca.domain.com/ca.crt.
  • при необходимости добавьте Точки распространения CRL (crlDistributionPoints): адреса со списками отозванных сертификатов (Certificate Revocation List, CRL). По указанным адресам (например, http://example.com) можно проверить статус отзыва выданных сертификатов.

Самоподписной (SelfSigned)

Самоподписной (SelfSigned) ClusterIssuers используются для установления быстрого и безопасного соединения, когда нет необходимости в подтверждении подлинности центрами сертификации.

Когда выбран тип Самоподписной для ClusterIssuer, при необходимости можно добавить Точки распространения CRL (CDP) (crlDistributionPoints). Каждая точка (url-адрес, например, http://example.com) идентифицирует местоположение списка отозванных сертификатов (Certificate Revocation List, CRL), в котором можно проверить действительность выданных сертификатов.

Скриншот

clusterissuerself

После завершения настройки ClusterIssuer нажмите кнопку Сохранить.

Просмотр и изменение ClusterIssuers

Созданные ClusterIssuers отображаются в виде списка на странице ClusterIssuers в разделе Администрирование кластера.

Для просмотра нажмите на название ClusterIssuer в списке.

При необходимости изменения ClusterIssuer обновите сведения спецификации объекта и нажмите Сохранить.

Также ClusterIssuer можно изменить с помощью YAML манифеста. Перейдите на вкладку Манифест. После изменения манифеста выполните проверку. Результат проверки будет доступен в правой части экрана. Раскройте блок результата проверки, чтобы увидеть полный манифест. Если валидация формата манифеста ClusterIssuer не пройдена, недоступна проверка манифеста.

Сохраните изменения, внесенные в манифест. Несохраненные данные не будут применены.

Удалить ClusterIssuer вы можете одним из способов:

  • на странице ClusterIssuers нажмите в строке объекта;
  • на странице просмотра ClusterIssuer на вкладке ClusterIssuer нажмите кнопку Удалить;
  • на странице просмотра ClusterIssuer перейдите на вкладку Манифест и нажмите .
×