cert-manager

16 commands

16 shown

Установить cert-manager через Helm Установить cert-manager с CRD в отдельном неймспейсе helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --set installCRDs=true #cert-manager#tls#k8s#helm Проверить поды cert-manager Убедиться, что все компоненты cert-manager запущены kubectl get pods -n cert-manager #cert-manager#tls#k8s#debug Список сертификатов Показать все ресурсы Certificate во всех неймспейсах kubectl get certificates -A #cert-manager#tls#k8s Описать сертификат Показать статус и события ресурса Certificate kubectl describe certificate my-cert -n default #cert-manager#tls#k8s#debug Список запросов сертификатов Показать все объекты CertificateRequest kubectl get certificaterequests -A #cert-manager#tls#k8s Создать ClusterIssuer (Let's Encrypt) Применить манифест ClusterIssuer для Let's Encrypt ACME kubectl apply -f clusterissuer-letsencrypt.yaml #cert-manager#tls#letsencrypt#acme Проверить ClusterIssuers Показать все ClusterIssuer и их статус готовности kubectl get clusterissuers #cert-manager#tls#issuer Вручную запустить обновление Принудительно обновить сертификат через cert-manager kubectl annotate certificate my-cert cert-manager.io/issueTime="$(date -u +%Y-%m-%dT%H:%M:%SZ)" --overwrite #cert-manager#tls#renew Просмотр логов cert-manager Стримить логи основного контроллера cert-manager kubectl logs -n cert-manager deploy/cert-manager -f #cert-manager#tls#logs#debug cmctl проверка API Проверить готовность API cert-manager через cmctl cmctl check api #cert-manager#tls#cmctl#cli Создать ClusterIssuer (Let's Encrypt) Создать ClusterIssuer Let's Encrypt prod с HTTP-01 solver kubectl apply -f - <<EOF apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-prod spec: acme: server: https://acme-v02.api.letsencrypt.org/directory email: admin@example.com privateKeySecretRef: name: letsencrypt-prod solvers: - http01: ingress: class: nginx EOF #cert-manager#tls#letsencrypt#acme Принудительное обновление сертификата Запускает немедленный перевыпуск, не дожидаясь окна обновления; появится новый CertificateRequest cmctl renew <name> -n <ns> #cert-manager#tls#secrets#k8s Диагностика статуса сертификата Сквозной обзор: Certificate, Request, Order, Challenge и точная причина сбоя ACME cmctl status certificate <name> -n <ns> #cert-manager#tls#troubleshooting#debug Просмотр содержимого выпущенного секрета Декодирует tls.crt и показывает издателя, SAN и срок действия без ручного openssl x509 cmctl inspect secret <name> -n <ns> #cert-manager#tls#secrets#security ClusterIssuer с DNS01 на Route53 DNS01-издатель для wildcard-сертификатов; IRSA или секрет должен давать права на изменение записей route53 kubectl apply -f - <<EOF apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-dns spec: acme: server: https://acme-v02.api.letsencrypt.org/directory privateKeySecretRef: name: letsencrypt-dns solvers: - dns01: route53: region: us-east-1 hostedZoneID: <id> EOF #cert-manager#tls#dns#cloud Зависшие ACME-челленджи Показывает ожидающие проверки и ошибку propagation/self-check, блокирующую выпуск kubectl get challenges -A -o wide && kubectl describe challenge -n <ns> <name> #cert-manager#tls#dns#troubleshooting
no commands match