证书管理器为AKS提供自己的SSL证书

时间:2019-12-02 11:14:55

标签: ssl kubernetes azure-aks cert-manager

我想使用证书管理器在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

1 个答案:

答案 0 :(得分:1)

证书管理员将执行acme挑战验证,尝试将此秘密名称传递到入口规则中的tls,一旦acme挑战显示为有效,您将在入口中看到相应的条目

kubectl -n namespace get ing

会给你的。

然后证书将获得就绪状态

我尝试过,但是我没有使用任何预先创建的tls机密。您可以参考this stackoverflow post,对您有帮助