当前位置:论坛首页 > Linux面板 > 求助

【已完成】Let's Encrypt 泛域名证书续签失败问题

发表在 Linux面板2023-1-25 20:13 [复制链接] 10 5617

本帖最后由 堡塔运维香菜卷 于 2023-10-9 14:36 编辑

本人正在使用宝塔面板提供的 Let's encrypt 证书自动续签服务。
欲续签的域名(假定为 abcd.site)使用的是阿里云 DNS 服务,已配置好 AccessKey 和 SecretKey

证书包含的域名包括:
abcd.site
*.abcd.site
*.local.abcd.site

由于包含泛域名,统一使用 DNS TXT 记录验证。
在最新的 7.9.7 宝塔面板中续签时,反复出现域名验证失败的问题,其中部分日志如下:

  1. |-共需要续签 1 张证书
  2. |-正在续签第 1 张,域名: ['abcd.site', '*.abcd.site', '*.local.abcd.site']..
  3. |-正在创建订单..
  4. |-正在获取验证信息..
  5. |-验证类型:dns-01
  6. ('找不到域名的record_id: ', 'abcd.site')
  7. |-验证类型:dns-01
  8. ('找不到域名的record_id: ', 'abcd.site')
  9. |-验证类型:dns-01
  10. ('找不到域名的record_id: ', 'abcd.site')
  11. |-正在验证域名..
  12. |-尝试本地验证DNS记录,域名: _acme-challenge.abcd.site , 类型: TXT 记录值: Edxo6qnnSlB9lWuE4-Ay4UfmVCG2Q7L8S9olCbK-BSg
  13. /www/server/panel/class/acme_v2.py:964: DeprecationWarning: please use dns.resolver.resolve() instead
  14.   ns = dns.resolver.query(domain, s_type)
  15. |-第 1 次验证值: -LCclg9I05gYWBCNTrxT0UuJTwuoLeU0Jz379BfTsfM
  16. |-第 2 次验证值: -LCclg9I05gYWBCNTrxT0UuJTwuoLeU0Jz379BfTsfM
  17. ......
  18. |-第 20 次验证值: -LCclg9I05gYWBCNTrxT0UuJTwuoLeU0Jz379BfTsfM
  19. |-本地验证失败!
  20. |-尝试本地验证DNS记录,域名: _acme-challenge.local.abcd.site , 类型: TXT 记录值: UfxYeeFT45o6uCEAKOZCKa2Q4lZyuY7fBBXXBXBzF3o
  21. |-第 1 次验证值: UfxYeeFT45o6uCEAKOZCKa2Q4lZyuY7fBBXXBXBzF3o
  22. |-本地验证成功!
  23. |-尝试本地验证DNS记录,域名: _acme-challenge.abcd.site , 类型: TXT 记录值: -LCclg9I05gYWBCNTrxT0UuJTwuoLeU0Jz379BfTsfM
  24. |-第 1 次验证值: -LCclg9I05gYWBCNTrxT0UuJTwuoLeU0Jz379BfTsfM
  25. |-本地验证成功!</font></b>
  26. |-第1次查询验证结果..
  27. |-验证失败!
  28. error_result: Incorrect TXT record "-LCclg9I05gYWBCNTrxT0UuJTwuoLeU0Jz379BfTsfM" found at _acme-challenge.abcd.site
  29. |-在['_acme-challenge.abcd.site']上发现错误的TXT记录:['-LCclg9I05gYWBCNTrxT0UuJTwuoLeU0Jz379BfTsfM'],请检查TXT解析是否正确,如果是DNSAPI方式申请的,请10分钟后重试! </font></b>
复制代码

通过 debug acme_v2.py 归纳错误原因如下:

1. abcd.site 和其对应的泛域名 *.abcd.site 需要验证两次,其对应所需的 TXT 记录名称均为 _acme-challenge.abcd.site,但所需的记录值不同。
2. 对于待验证域名 *.abcd.site,其所需 TXT 记录值为 -LCclg9I05gYWBCNTrxT0UuJTwuoLeU0Jz379BfTsfM
3. 对于待验证域名 abcd.site,其所需 TXT 记录值为 Edxo6qnnSlB9lWuE4-Ay4UfmVCG2Q7L8S9olCbK-BSg
4. 若需确保当前证书续签通过 Let's Encrypt 的域名验证,则需要同时具有两条名称为 _acme-challenge.abcd.site 的 TXT 记录,分别对应上述两个值。
5. 当前版本宝塔面板的 acme_v2.py 会统一调用 DNS API,一次性更新单个证书所需的所有 TXT 记录。且对每一个续签的域名,都会先删除已有记录,再添加新记录。
6. 由于 *.abcd.site 和 abcd.site 中势必有一个域名先进行 TXT 记录更新,因此在第二个域名更新 TXT 记录时,第一个域名所需的 TXT 记录就会被错误地删除
7. 基于第 6 条所述现象,续签时 *.abcd.site 和 abcd.site 两个域名中必然有一个无法通过本地和 Let's Encrypt 的 DNS 验证(对应日志“本地验证失败”)。

另外,还有一个 debug 中遇到的问题:
7.9.7 版宝塔面板的 acme_v2.py 第 299 行,“请求创建订单”后的“如果创建失败”判断,状态码只包括 201。
但在使用 HTTP 代理时,此处的状态码可能为 200。

建议:
1. 临时记录每次续签时已添加的 Record ID,避免在更新其它域名对应的 TXT 记录时错误地删除本次所需的 TXT 记录。
2. “请求创建订单”后的“如果创建失败”判断,条件修改为状态码为 200 或 201。



使用道具 举报 只看该作者 回复
发表于 2023-1-26 10:24:22 | 显示全部楼层
感谢您的反馈,我先记录下您的问题,等 正式上班的时候排查下
使用道具 举报 回复 支持 反对
发表于 2023-1-27 23:36:11 | 显示全部楼层
终于有人遇到和我一样的问题了,本地txt值和DNS实际值一直对不上。
使用道具 举报 回复 支持 反对
发表于 2023-1-27 23:37:03 | 显示全部楼层
宝塔用户_qixxhs 发表于 2023-1-27 23:36
终于有人遇到和我一样的问题了,本地txt值和DNS实际值一直对不上。

这个问题困扰我很久了
使用道具 举报 回复 支持 反对
发表于 2023-1-27 23:38:43 | 显示全部楼层
求一份修正后的acme_v2.py文件
使用道具 举报 回复 支持 反对
发表于 2023-1-27 23:42:18 | 显示全部楼层
|-验证类型:dns-01
|-正在验证域名..
|-尝试本地验证DNS记录,域名: _acme-challenge.xxxx.xxxx , 类型: TXT 记录值: -YpACoYXAd9H4gdRvITQzDCTwVbiyjvdUhzJ0vkOS7g ----- 这个值是怎么来的?
|-第 1 次验证值: HdOcLZwfbTJmER5-p65SCi0MwfwBVg6xuxi9Hm108U4 ----- 这个值是创建时设置的DNS
|-第 2 次验证值: HdOcLZwfbTJmER5-p65SCi0MwfwBVg6xuxi9Hm108U4
|-第 3 次验证值: HdOcLZwfbTJmER5-p65SCi0MwfwBVg6xuxi9Hm108U4
|-第 4 次验证值: HdOcLZwfbTJmER5-p65SCi0MwfwBVg6xuxi9Hm108U4
|-第 5 次验证值: HdOcLZwfbTJmER5-p65SCi0MwfwBVg6xuxi9Hm108U4
|-第 6 次验证值: HdOcLZwfbTJmER5-p65SCi0MwfwBVg6xuxi9Hm108U4
使用道具 举报 回复 支持 反对
发表于 2023-1-30 09:44:00 | 显示全部楼层
楼主太优秀了!!!
使用道具 举报 回复 支持 反对
发表于 2023-3-28 15:58:17 | 显示全部楼层
您好,请问您升级到最新版的面板后问题解决了吗?没有解决的话麻烦重新发帖以便处理。
使用道具 举报 回复 支持 反对
发表于 2023-4-14 14:14:37 | 显示全部楼层
堡塔运维香菜卷 发表于 2023-3-28 15:58
您好,请问您升级到最新版的面板后问题解决了吗?没有解决的话麻烦重新发帖以便处理。 ...

我用的7.9.9,问题依然。泛域名续签从未成功过,每到3个月都要删除,重新修改dns记录,重新申请。
使用道具 举报 回复 支持 反对
发表于 2023-4-14 14:15:33 | 显示全部楼层
宝塔用户_lwuels 发表于 2023-4-14 14:14
我用的7.9.9,问题依然。泛域名续签从未成功过,每到3个月都要删除,重新修改dns记录,重新申请。 ...

每次续签错误都是本地记录和dns记录对不上
使用道具 举报 回复 支持 反对
发表于 2023-4-28 17:11:35 | 显示全部楼层
宝塔用户_lwuels 发表于 2023-4-14 14:14
我用的7.9.9,问题依然。泛域名续签从未成功过,每到3个月都要删除,重新修改dns记录,重新申请。 ...

同样的问题!7.9.9,泛域名续签从未成功过,每到3个月都要删除,重新修改dns记录,重新申请。
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表