Cert Manager

2904 ワード

  • issuer privateKeySecretRef自動生成private key、名前を記入すれば
  • kubectl describeを使用して対応するリソースを表示すると、作成に成功したかどうか、失敗した情報issuer cert orderなど、詳細なエラー情報が表示されます.
  • ACME Issuer type represents a single Account registered with the ACME server.

  • 1 register->生成fulldomain 2.dnsレコードの追加_acme-challenge.targetdomain.com cname fulldomain 3. regiseterの結果acmednsが作成する.jsonファイル、フォーマットは以下の通りです
    {
    	"taomiao.store": {
    		"username": "ec953ce2-a147-4980-816a-9fd820b086da",
    		"password": "HqJxoWxm7bVsA12prMOJFlakouNGNs39v0AZIlP3",
    		"fulldomain": "e214d520-19c9-4d32-858d-99818ea41654.auth.acme-dns.io",
    		"subdomain": "e214d520-19c9-4d32-858d-99818ea41654",
    		"allowfrom": []
    	}
    }
    
    

    kubectl create secret generic acme-dns --from-file acmedns.jsonの異なるドメイン名はこのregiseterアカウントを構成することができ、対応するdnsレコードを構成し、acmednsを維持することができる.jsonファイルでいいです.
  • 上記の情報に基づいてissue
  • を作成する
    apiVersion: certmanager.k8s.io/v1alpha1
    kind: Issuer
    metadata:
      name: letsencrypt-staging
      namespace: cert-manager
    spec:
      acme:
        server: https://acme-staging-v02.api.letsencrypt.org/directory
        privateKeySecretRef:
             name: letsencrypt-staging
        solvers:
        - dns01:
            acmedns:
              host: https://auth.acme-dns.io
              accountSecretRef:
                name: acme-dns
                key: acmedns.json
    
    

    作成が完了したら、kubectl describeを使用して作成に成功したかどうかを確認します.失敗した場合、詳細な失敗情報が表示されます.本番環境では、次の構成を使用できます.
    apiVersion: certmanager.k8s.io/v1alpha1
    kind: Issuer
    metadata:
      name: letsencrypt-prod
      namespace: cert-manager
    spec:
      acme:
        server: https://acme-v02.api.letsencrypt.org/directory
        privateKeySecretRef:
             name: letsencrypt-prod
        solvers:
        - dns01:
            acmedns:
              host: https://auth.acme-dns.io
              accountSecretRef:
                name: acme-dns
                key: acmedns.json
    
  • さらに上の情報でCertificate
  • を作成
    apiVersion: certmanager.k8s.io/v1alpha1
    kind: Certificate
    metadata:
      name: taomiao-store
      namespace: cert-manager
    spec:
      secretName: taomiao-store-tls
      renewBefore: 360h # 15d
      commonName: taomiao.store
      dnsNames:
      - taomiao.store
      issuerRef:
        name: letsencrypt-staging
        kind: Issuer
    

    このファイルを作成すると、cert managerはすぐに証明書の生成プロセスを開始し、kubectl describeコマンドでissuer cert order challengeを表示できます.
  • 万Certを作成した後、エラーがなければtaomiao-store-tls(Certificate.spec.secretName)というsecretが生成されます.生成された証明書のkeyと証明書自体が見えます.fullchain.crt証明書を生成し、自分のドメイン名の証明書とlet’sのca証明書があり、直接使用できます.微信にも問題ありません.
  • cert manager自動花を実現する原理
  • dns 01はサードパーティのacme-dns+acmeを用いる.shこのようにして、ターゲットドメイン名にcnameを構成するだけで安全な自動化を実現することができる.

  • リファレンス
    Setting up Issuers»Setting up ACME Issuers»Configuring DNS 01 Challenge Providers»ACME-DNSはcert-managerを利用してIngressに無料のHTTPS証明書cert-manager’s documentationを有効にする