我的目标是能够使用 traefik 获取“内部”域的证书。“内部”是指没有公共 A 记录。因此,我无法使用 letsencrypt 提供的 http 质询。因此,我尝试配置 traefik 的 certresolver 以使用 dns01 质询。
我目前所取得的成就:
- bind 配置为使用密钥接受动态更新
traefik-key
nsupdate
使用上面提到的键添加和删除 TXT 记录
无效的方法:
- traefik 无法成功请求证书:
[WARN] [sub.example.com] acme: cleaning up failed: rfc2136: failed to remove: DNS update failed: dns: bad signature "
启用 dns01 挑战应该很容易:
certificatesResolvers:
myresolver:
acme:
email: [email protected]
storage: /etc/traefik/acme.json
#caServer: https://acme-staging-v02.api.letsencrypt.org/directory
dnsChallenge:
provider: rfc2136
这些环境变量是在 traefik 容器内设置的(key 显然不是真正的):
RFC2136_NAMESERVER=ns1.example.com
RFC2136_TSIG_ALGORITHM=hmac-sha256.
RFC2136_TSIG_KEY=traefik-key
RFC2136_TSIG_SECRET=GWyS8tTnqO2idhxXnC8Vtc+tY5cMaKA/9RLpSlMeqKM=
我的配置出了什么问题?我可能还需要 A 记录吗?错误签名听起来像是 TSIG 的问题,但我找不到它,而且正如前面提到的,密钥/秘密组合适用于nsupdate
。
更不用说,没有任何名称服务器日志中有关添加 TXT 记录成功/失败的条目。仅当我省略 TSIG 配置时,它才会返回状态NOTIMP
而不是上述消息。
感谢您的帮助!
答案1
啊,忘了它吧。
更不用说,名称服务器的日志中没有关于添加 TXT 记录成功/失败的尝试的任何条目。
这是我昨天没有得到的提示。很久以前,我不太喜欢浏览器使用自己的 DNS。因此,我将每个查找重定向到我自己的 DNS。acme 脚本也发生了同样的情况,试图创建 TXT 记录。
如果没有这种重定向,它就会像魔法一样起作用。