无法使用Azure DNS区域使用Kubernetes和Letsencrypt创建通配符(*)证书

无法使用Azure DNS区域使用Kubernetes和Letsencrypt创建通配符(*)证书,azure,nginx,kubernetes,dns,lets-encrypt,Azure,Nginx,Kubernetes,Dns,Lets Encrypt,我对库伯内特斯是个新手。但到目前为止,我们已经能够配置一个AKS(Azure Kubernetes服务)集群。我的服务有多个名称空间(Dev、stage、prod)。并使用nginx配置了一个入口服务(进入它自己的名称空间“入口nginx”)。该设置与HTTP完美配合 我的问题是从我尝试使用HTTPS时开始的。首先使用脚本安装证书管理器。它再次创建了自己的名称空间:“cert manager”我没有使用HELM,只是使用常规清单。她也跟着Azure女士 一切似乎都是正确的,我有我的服务、秘密、集

我对库伯内特斯是个新手。但到目前为止,我们已经能够配置一个AKS(Azure Kubernetes服务)集群。我的服务有多个名称空间(Dev、stage、prod)。并使用nginx配置了一个入口服务(进入它自己的名称空间“入口nginx”)。该设置与HTTP完美配合

我的问题是从我尝试使用HTTPS时开始的。首先使用脚本安装证书管理器。它再次创建了自己的名称空间:“cert manager”我没有使用HELM,只是使用常规清单。她也跟着Azure女士

一切似乎都是正确的,我有我的服务、秘密、集群服务器等,甚至在Azure DNS专区创建了挑战。你可以在Azure门户上看到它。但我没有拿到任何证书

集群服务器配置:

apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
  name: 8b3s-org-letsencrypt
spec:
  acme:
    #server: https://acme-v02.api.letsencrypt.org/directory
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    email: <...@gmail.com>
    privateKeySecretRef:
      name: 8b3s-org-letsencrypt-key
    solvers:
    - selector:
      dns01:
        azuredns:
          clientID: ....
          clientSecretSecretRef:
          # The following is the secret we created in Kubernetes. Issuer will use this to present challenge to Azure DNS.
            name: azuredns-config
            key: client-secret
          subscriptionID: ....
          tenantID: "...."
          resourceGroupName: Web
          hostedZoneName: 8b3s.org
          # Azure Cloud Environment, default to AzurePublicCloud
          environment: AzurePublicCloud
所以问题是,每个配置似乎都正常,但根本没有证书我只得到一个“不透明”tls.key: 1679字节,作为“证书管理器”命名空间中的“8b3s组织letsencrypt密钥”。

已为“ingress nginx”命名空间“8b3s org letsencrypt tls”创建证书,类型为“kubernetes.io/tls”。但是“ca.crt:0字节”和“tls.crt:0字节”

我还查看了CertManagerPods的输出。发现这两个日志很奇怪(如果需要,我有完整的日志):

知道有什么问题吗

更新: 按建议将Azure NS记录添加到我的域DNS。等了一个小时左右,但没有效果。。。删除现有CA机密,重新启动所有Nginx、证书管理器吊舱。并注意到以下错误:

E0225 10:14:03.671099       1 util.go:71] cert-manager/controller/certificaterequests/handleOwnedResource "msg"="error getting order referenced by resource" "error"="certificaterequest.cert-manager.io \"8b3s-org-letsencrypt-tls-1807766204\" not found" "related_resource_kind"="CertificateRequest" "related_resource_name"="8b3s-org-letsencrypt-tls-1807766204" "related_resource_namespace"="ingress-nginx" "resource_kind"="Order" "resource_name"="8b3s-org-letsencrypt-tls-1807766204-3808299645" "resource_namespace"="ingress-nginx" 
E0225 10:14:03.674679       1 util.go:71] cert-manager/controller/certificates/handleOwnedResource "msg"="error getting order referenced by resource" "error"="certificate.cert-manager.io \"8b3s-org-letsencrypt-tls\" not found" "related_resource_kind"="Certificate" "related_resource_name"="8b3s-org-letsencrypt-tls" "related_resource_namespace"="ingress-nginx" "resource_kind"="CertificateRequest" "resource_name"="8b3s-org-letsencrypt-tls-1807766204" "resource_namespace"="ingress-nginx" 

您的域显示它仍然指向
NS57.DOMAINCONTROL.COM
,而不是您在屏幕截图中显示的4个Azure DNS解析程序。因此,Let's Encrypt无法知道他们应该使用Azure来查找
\u acme-challenge
记录,但它失败了。

谢谢你的回答,我对此被阻止了一段时间……好吧,这意味着AKS配置正确,但我必须修改我的域DNS?但到底是什么?对不起,我不是网络专家,只是个开发者。目前正在Godaddy上查看我的域名DNS记录。您刚才提到的NS57.DOMAINCONTROL.COM无法更改。30分钟前添加了指向Azure的新NS记录。到目前为止没有影响。正如接近票数的投票所表明的,这是一个关于编程问题的网站,而不是关于“DNS如何工作”的网站。你可能会在serverfault.com上或通过阅读一点来获得更好的运气,因为你试图解决的问题不是一个新问题。我必须指出,我一周前才开始与Kubernetes和Docker合作。配置每一个组件至少是压倒性的。。。或者我可以说疯狂:)所以我认为最初的问题是相关的。很高兴知道我第一次就把一切都做好了。:)你也是对的。现在我在Godaddy换了NS。或者说,他们试图改变它,但他们的网站却因为JS错误而崩溃。。。所以我不得不联系支持部门,请一个人更新。整个故事都是疯狂的。在等待传播和删除旧密钥+Pod“回收”后,它工作了!谢谢你救了我几天:)
I0222 22:51:00.067791       1 acme.go:201] cert-manager/controller/certificaterequests-issuer-acme/sign "msg"="acme Order resource is not in a ready state, waiting..." "related_resource_kind"="Order" "related_resource_name"="8b3s-org-letsencrypt-tls-1807766204-3808299645" "related_resource_namespace"="ingress-nginx" "resource_kind"="CertificateRequest" "resource_name"="8b3s-org-letsencrypt-tls-1807766204" "resource_namespace"="ingress-nginx" 

I0222 22:51:00.068069       1 sync.go:129] cert-manager/controller/orders "msg"="Creating additional Challenge resources to complete Order" "resource_kind"="Order" "resource_name"="8b3s-org-letsencrypt-tls-1807766204-3808299645" "resource_namespace"="ingress-nginx" 

E0222 22:51:01.876182       1 sync.go:184] cert-manager/controller/challenges "msg"="propagation check failed" "error"="DNS record for \"8b3s.org\" not yet propagated" "dnsName"="8b3s.org" "resource_kind"="Challenge" "resource_name"="8b3s-org-letsencrypt-tls-1807766204-3808299645-481622463" "resource_namespace"="ingress-nginx" "type"="dns-01" 
E0225 10:14:03.671099       1 util.go:71] cert-manager/controller/certificaterequests/handleOwnedResource "msg"="error getting order referenced by resource" "error"="certificaterequest.cert-manager.io \"8b3s-org-letsencrypt-tls-1807766204\" not found" "related_resource_kind"="CertificateRequest" "related_resource_name"="8b3s-org-letsencrypt-tls-1807766204" "related_resource_namespace"="ingress-nginx" "resource_kind"="Order" "resource_name"="8b3s-org-letsencrypt-tls-1807766204-3808299645" "resource_namespace"="ingress-nginx" 
E0225 10:14:03.674679       1 util.go:71] cert-manager/controller/certificates/handleOwnedResource "msg"="error getting order referenced by resource" "error"="certificate.cert-manager.io \"8b3s-org-letsencrypt-tls\" not found" "related_resource_kind"="Certificate" "related_resource_name"="8b3s-org-letsencrypt-tls" "related_resource_namespace"="ingress-nginx" "resource_kind"="CertificateRequest" "resource_name"="8b3s-org-letsencrypt-tls-1807766204" "resource_namespace"="ingress-nginx"