【发布时间】:2019-07-06 08:08:16
【问题描述】:
任务: 我想使用 LetsEncrypt Certbot 提供的 DNS 质询方法一次性为 *.example.com 和 example.com 创建通配符证书。
复制: 在尝试获取设置我的 SSL 证书所需的证书文件时,我遇到了 LetsEncrypt Certbot 的 catch22 情况。
我用这些参数调用 certbot 命令
certbot certonly --agree-tos --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory -d "*.example.com,example.com"
然后被要求在命令的响应中输入两条 DNS TXT 记录。
到目前为止,一切都很好。但是,如果我按照 certbot 命令的要求输入给定域的两个请求的 DNS TXT 记录,我会收到一条错误消息:
重要提示: - 服务器报错如下:
域:example.com 类型:未经授权 详细信息:不正确 TXT 记录“[authentication sn-p for example.com]”位于
_acme-challenge.example.com要修复这些错误,请确保您的域名是
正确输入和该域的 DNS A/AAAA 记录
包含正确的 IP 地址。
问题:Certbot 不接受与刚才提示我设置的完全相同的 DNS TXT 记录。
Certbot 似乎无法处理我试图同时为“*.example.com”和“example.com”请求证书的事实,将它们视为属于它们两个不同的域领域,并且没有按预期接受这两个 TXT 记录。
【问题讨论】:
-
你有没有通过运行
host -t txt _acme-challenge.example.com检查条目 -
'Incorrect TXT record ""' 看起来更像是根本没有将条目添加到 DNS...(空字符串作为 TXT 记录数据)
-
@PatrickMevzek:被截断的身份验证仅在我的 stackoverflow-post 中被截断。它正确地反映在来自 LetsEncrypt-Bot 的原始消息中。
-
原来这个错误确实是由于域名提供商造成的DNS刷新滞后造成的。 @l0w_skilled 的回复帮助我弄清楚我输入的实际 TXT 记录需要几分钟才能由域服务提供商设置,即使它的 TTL 设置为 60 秒。谢谢回复。问题解决了!
-
“被截断的身份验证仅在我的 stackoverflow-post 中被截断。”这显示了混淆错误的危险...... TXT 记录在 DNS 中,因此是公开的。披露它们不会产生任何不利后果,因此完全删除它们并让您看起来好像没有得到任何有效的 DNS 回复实际上只会误导任何想要帮助的人并让他们失去时间......
标签: ssl dns certificate lets-encrypt certbot