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 上面的 secretName
tls:
- hosts:
- www.malema.net
secretName: malema-certificate-tls #证书的名字
- hosts:
- malema.net
secretName: malema-certificate-tls