cert-manager ClusterIssuer: ACME HTTP01

๐Ÿ’ก cert-manager ClusterIssuer: ACME HTTP01 โ€” Executive Summary

Technical architectural analysis, practical configuration manifests, and deployment instructions for cert-manager ClusterIssuer: ACME HTTP01.

References and Guidelines (NOTE)

โ€“ ClusterIssuer is not limited to the Namespace and acts as a certification authority for issuing certificates across the entire cluster.
โ€“ Issuer only adds Namespace information.

Self-Sign Issuer
bash
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: selfsigned-issuer
spec:
  selfSigned: {}
CA Issuer
bash
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: ca-issuer
spec:
  ca:
    secretName: ca-key-pair #cert-manager์„ค์น˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋‚ด
HTTP01

Authentication file in the link http://{your-domain}/.well-known/acme-challenge/

bash
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod #์šด์˜์šฉ !!! ์‹ค์ œ ์กด์žฌํ•˜๋Š” ๋„๋ฉ”์ธ์— ๋Œ€ํ•˜์—ฌ ์‹ ๋ขฐํ• ์ˆ˜ ์žˆ๋Š” ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๊ธฐ ์œ„ํ•œ Issuer ์ด๋ฏ€๋กœ ์ฃผ์˜
spec:
  acme:
    email: #๋‚˜์˜ ์ด๋ฉ”์ผ ์ž…๋ ฅ
    privateKeySecretRef:
      name: letsencrypt-prod #์ƒ์„ฑ๋  tls.key secret
    server: https://acme-v02.api.letsencrypt.org/directory
    solvers:
    - http01:
        ingress:
          class: #ingressClass ์ž…๋ ฅ
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-staging #ํ…Œ์ŠคํŠธ๋ฐ ๊ฐœ๋ฐœ์šฉ
spec:
  acme:
    email: #๋‚˜์˜ ์ด๋ฉ”์ผ ์ž…๋ ฅ
    privateKeySecretRef:
      name: letsencrypt-staging #์ƒ์„ฑ๋  tls.key secret
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    solvers:
    - http01:
        ingress:
          class: #ingressClass ์ž…๋ ฅ
DNS01

Register a specific TXT record in your domain DNS

bash
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod #์šด์˜์šฉ !!! ์‹ค์ œ ์กด์žฌํ•˜๋Š” ๋„๋ฉ”์ธ์— ๋Œ€ํ•˜์—ฌ ์‹ ๋ขฐํ• ์ˆ˜ ์žˆ๋Š” ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๊ธฐ ์œ„ํ•œ Issuer ์ด๋ฏ€๋กœ ์ฃผ์˜
spec:
  acme:
    email: #๋‚˜์˜ ์ด๋ฉ”์ผ ์ž…๋ ฅ
    privateKeySecretRef:
      name: letsencrypt-prod #์ƒ์„ฑ๋  tls.key secret
    server: https://acme-v02.api.letsencrypt.org/directory
    solvers:
    - dns01:
        cloudDNS:
          project: my-project
          serviceAccountSecretRef:
            name: prod-clouddns-svc-acct-secret
            key: service-account.json
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-staging #ํ…Œ์ŠคํŠธ๋ฐ ๊ฐœ๋ฐœ์šฉ
spec:
  acme:
    email: #๋‚˜์˜ ์ด๋ฉ”์ผ ์ž…๋ ฅ
    privateKeySecretRef:
      name: letsencrypt-staging #์ƒ์„ฑ๋  tls.key secret
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    solvers:
    - dns01:
        cloudDNS:
          project: my-project
          serviceAccountSecretRef:
            name: prod-clouddns-svc-acct-secret
            key: service-account.json

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *