集群证书发行 cluster issuer

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: malema-letsencrypt
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    preferredChain: "ISRG Root X1"
    email: admin@malema.net # 你的邮件
    privateKeySecretRef:
      name: malema-custler
    solvers:    
    - http01:
        ingress:
          name: malema-ingress

kubectl apply -f clusterissuer.yaml -n cert-manager

kubectl get clusterIssuer

可以看到

NAME READY AGE malema-letsencrypt True 6m22s

如果 看到是 false的话。

需要用下面的命令去看具体的原因

kubectl get clusterissuer malema-letsencrypt -o yaml

还有用 下面的命令来查看。

kubectl logs -l app=cert-manager --namespace=<your-namespace>

不同的namespace下面有不同的ingress 需要在自己namespace下面创建ClusterIssuer。 然后再创建 certificate。

签发证书

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: malema-certificate
spec:
  secretName: malema-certificate-tls # 证书存储的 secretName ingress哪边要用到它的
  issuerRef:
    name: malema-letsencrypt # ClusterIssuer 的名字
    kind: ClusterIssuer
  dnsNames:
  - www.malema.net
  - malema.net

kubectl apply -f malema-certificate.yaml #注意没有 namespace

查看证书 kubectl get certificate

查看 secret kubectl get secret 应该要能看到 我们的证书的 secretName

ingress

更改 ingress 上面的 secretName

  tls:
    - hosts:
      - www.malema.net             
      secretName: malema-certificate-tls   #证书的名字
    - hosts:
      - malema.net
      secretName: malema-certificate-tls
最近更新的
...