0

我想使用 cert-manager 在 AKS 上颁发我自己的 SSL 证书。

我已经有一个我想要使用的签名证书 ( https://www.quovadisglobal.de/Zertifikate/SSLCertificates/BusinessSSLCertificates.aspx )。在 cert-manager 的文档中,我只找到两个相关的解决方案。 https://cert-manager.io/docs/configuration/

SelfSigned:这应该用于由 CSR 签署证书。

CA:这应该用于签署传入的证书请求。

我尝试了第二个。这是我所做的:

安装并验证 cert-manager:

$ 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

从私钥和证书创建 Secret:

$ 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
4

1 回答 1

1

Cert manager 将进行 acme challenge 验证,尝试将此 secret name 传递给 ingress rule 中的 tls,一旦 acme challenge 出现有效,您将在 ingress 中看到相应的条目

kubectl -n namespace get ing

会给你的。

然后证书将获得就绪状态

我试过了,但我没有使用任何预先创建的 tls 密码。你可以参考这个stackoverflow帖子,我想它对你有点帮助

于 2019-12-02T11:36:00.670 回答