はじめに

  • 自宅に k8s クラスタを立てたので,その証明書の取得方法・更新方法をメモしておく.

cert-manager

  • cert-manager1を利用して,Let’s Encrypt から自動的に証明書を取得する.

手順

  1. cert-manager のインストール kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.12.0/cert-manager.yaml

  2. Issuer の作成

    • cloudflare を利用しているので,以下の設定を反映させる.
    apiVersion: v1
     kind: Secret
     metadata:
     name: cloudflare-api-token-secret
     labels:
         app: "cert-manager"
         app.kubernetes.io/name: "cert-manager"
         app.kubernetes.io/instance: "cert-manager"
     type: Opaque
     stringData:
     api-token: <API_TOKEN>
     ---
     apiVersion: cert-manager.io/v1
     kind: Issuer
     metadata:
     name: cloudflare-issuer
     labels:
         app: "cert-manager"
         app.kubernetes.io/name: "cert-manager"
         app.kubernetes.io/instance: "cert-manager"
     spec:
     acme:
         email: [email protected]
         server: https://acme-staging-v02.api.letsencrypt.org/directory
         privateKeySecretRef:
         name: cloudflare-api-token-secret
         solvers:
         - dns01:
             cloudflare:
                 apiTokenSecretRef:
                 name: cloudflare-api-token-secret
                 key: api-token
             selector:
             dnsNames:
                 - "example.com"
                 - "*.example.com"