我想使用证书管理器在AKS上发布我自己的SSL证书。
我已经有一个要使用的签名证书(https://www.quovadisglobal.de/Zertifikate/SSLCertificates/BusinessSSLCertificates.aspx)。在cert-manager的文档中,我仅找到两个相关的解决方案。 https://cert-manager.io/docs/configuration/
SelfSigned :应该用于CSR签署证书。
CA :这应该用于签署传入的证书请求。
我尝试了第二个。这是我做的:
安装并验证证书管理器:
$ kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.12.0/cert-manager.yaml
$ kubectl get pods --namespace cert-manager
NAME READY STATUS RESTARTS AGE
cert-manager-7c5748846c-b4nqb 1/1 Running 0 2d23h
cert-manager-cainjector-7b5965856-bgk4g 1/1 Running 1 2d23h
cert-manager-webhook-5759dd4547-mlgjs 1/1 Running 0 2d23h
根据私钥和证书创建机密:
$ sudo kubectl create secret tls ssl-secret-p --cert=mycert.crt --key=mykey.key --namespace=cert-manager
创建发行者:
apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
name: ca-issuer
namespace: cert-manager
spec:
ca:
secretName: ssl-secret-p
错误:
$ sudo kubectl get clusterissuers ca-issuer -n cert-manager -o wide
NAME READY STATUS AGE
ca-issuer False Error getting keypair for CA issuer: certificate is not a CA 5m
我做错了什么?
编辑:
sudo kubectl -n namespace get ing
NAME HOSTS ADDRESS PORTS AGE
nginx-ingress ***.com 51.105.205.128 80, 443 13m
答案 0 :(得分:1)
证书管理员将执行acme挑战验证,尝试将此秘密名称传递到入口规则中的tls,一旦acme挑战显示为有效,您将在入口中看到相应的条目
kubectl -n namespace get ing
会给你的。
然后证书将获得就绪状态
我尝试过,但是我没有使用任何预先创建的tls机密。您可以参考this stackoverflow post,对您有帮助