我正在运行一个小型 K3S 集群,并使用 Cert-Manager 向集群中运行的应用程序颁发 Let’s Encrypt 证书。
集群是通过 Ansible 安装的,并且初始生成的证书工作正常,但由于某些奇怪的原因,Cert-Manager 不会更新证书?
快速参考:主要主域名是molgaard.eu
,由 Simply.com 托管。
该集群位于 home.molgaard.eu,这是一个无法从互联网访问的子域,因此为了在表单上颁发 Let’s Encrypt 证书:(something).home.molgaard.eu
我需要确保dns01
在续订期间使用 Cert-Manager。
这一切都由以下 Ansible 任务处理:
- name: Create Lets Encrypt ClusterIssuer
kubernetes.core.k8s:
state: present
definition:
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
email: *** REDACTED ***
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt-prod-private-key
solvers:
- dns01:
webhook:
groupName: com.github.runnerm.cert-manager-simply-webhook
solverName: simply-dns-solver
config:
secretName: simply-credentials
selector:
dnsZones:
- molgaard.eu
当我创建集群时,这部分工作正常,但是当更新时,显然出现了问题:
当我尝试调试为续订证书而创建的挑战时发生了以下情况unifi.home.molgaard.eu
。
相关摘录kubectl get challenges unifi-tls-2-3236526805-1144319786 -ojson
如下:
"status": {
"presented": false,
"processing": true,
"reason": "When querying the SOA record for the domain '_acme-challenge.unifi.home.molgaard.eu.' using nameservers [8.8.8.8:53 1.1.1.1:53], rcode was expected to be 'NOERROR' or 'NXDOMAIN', but I got 'SERVFAIL'",
"state": "pending"
}
我知道它与 DNS 相关,并且我希望在请求 SOA 时,它会指向 Simply.com 托管的 DNS 服务器?
在网上搜索后,我确实找到了,但我不知道它是否适用于我的问题?
10
home.molgaard.eu
– 您最近是否更改(或添加)了某些 DNS 记录?注意:您需要的 DNS 记录存在于 上ns1.simply.com
,它们只是似乎尚未传播。–
home.molgaard.eu
,但我已明确告诉 cert-manager 使用 Google 和 CloudFlare DNS 进行 DNS 解析、颁发和更新 Let’s Encrypt 证书,所以这应该不是问题……还是?我是否应该创建一个本地CNAME
记录_acme-challenge.unifi.home.molgaard.eu CNAME _acme-challenge.molgaard.eu
,并告诉 cert-manager 使用本地 DNS,然后将其添加cnameStrategy: Follow
到我的 Ansible 脚本中?–
I have explicitly told cert-manager to use Google and CloudFlare DNS for DNS resolving issuing and renewing Let's Encrypt certificates, so that should not be an issue
– 那么,既然 lets encrypt 无法访问本地绑定服务器来解析这些地址,那 lets encrypt 如何解析它需要的地址呢???但是ns1.simply.com
它确实解析了这些地址,不知道为什么它们没有传播到任何地方–
ns1.simply.com
8.8.8.8 知道,unifi.home.molgaard.eu
但是 8.8.8.8 不知道呢?–
_acme-challenge.unifi.home.molgaard.eu
凭据中。在初始验证期间,它在 Simply.com 上创建记录没有问题。另外:为什么 8.8.8.8 需要知道 unifi.home.molgaard.eu 的 IP 地址是什么?它解析为 RFC1918 地址,并且不需要,因为我使用而不是。这意味着我证明我可以访问 DNS 服务器,而不是域的 Web 服务器。simply-credentials
dns01
dns01
http-01
–
|