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

【已完成】宝塔DNS解析申请Let's Encrypt证书失败的问题

发表在 Linux面板2022-9-9 19:16 [复制链接] 12 11099

最*用宝塔申请Let's Encrypt申请证书失败,修复宝塔面板或者重新生成DNSPod的口令,也没解决问题。

错误提示下图所示,是TXT记录没添加上,但实在无法判断是宝塔面板的问题,还是DNSPod的问题。



1662721995694.jpg






------------------------------------------- 以下为自行排查的情况 -----------------------------------------------------------


经过测试,判断是宝塔面板代码的问题:


1、我使用curl直接给DNSPod提交解析记录,DNSPod后台是可以看见新添加的解析记录,并且操作日志里存在提交记录
2、我使用一台新服务器安装宝塔,进行DNS解析,结果证书申请失败,同时DNSPod的后台并没有提交记录
3、我查看宝塔面板的acme_v2.py的代码,发现create_dns_record这个方法存在问题。于是增加日志记录,确定了问题。


如图:为增加日志记录后,申请证书时的日志情况

iShot_2022-09-09_23.34.03.png


如图:我在代码中增加的日志记录

iShot_2022-09-09_23.37.05.png
如图:pandelDnsapi.py中的日志
iShot_2022-09-10_00.03.52.png

从之前的证书申请日志打印面板中看,根本没执行到panelDnsapi类的add_record方法。


我这只是很很粗略的测试,请宝塔工程师排查一下。
使用道具 举报 只看该作者 回复
发表于 2022-9-9 19:56:21 | 显示全部楼层
堡塔安全木兰 发表于 2022-9-9 19:29
这个是证书机构的无法查询到TXT解析,如果你添加了DNS key但是仍然不行,就只能你手动配置DNS试试了 ...

Let's Encrypt,只有3个月的时间,如果需要手动解析的话,太麻烦了,那还是换其他证书吧。

我在DNSPod里看了,API没有添加TXT解析,所以如果不是宝塔的问题,要么就是DNSPod了。另外,使用HTTP验证模式是可以的,但我大部分网站都是反向代理过去的,做了反向代理,HTTP验证就无效了。
使用道具 举报 回复 支持 反对
发表于 2022-9-9 20:30:05 | 显示全部楼层

我使用手动解析了。依然失败,感觉就是证书机构的问题了,他没检测到我添加到解析记录
使用道具 举报 回复 支持 反对
发表于 2022-9-9 21:59:04 | 显示全部楼层

我换了DNS解析套餐后,手动解析成功了。然后再测试DNSPod Token自动解析,还是失败。是不是DNSPod接口的原因啊,解析记录添加失败了,导致验证失败。
使用道具 举报 回复 支持 反对
发表于 2022-9-9 22:55:53 | 显示全部楼层
本帖最后由 宝塔用户_ijpbbz 于 2022-9-10 00:07 编辑
堡塔安全木兰 发表于 2022-9-9 22:25
具体不清楚,接口都是直接调用的,很久没改过这个地方了

我已经做了测试进行排查了,并且在问题详情中做了补充,麻烦给看一下,谢谢!
iShot_2022-09-09_23.34.03.png
iShot_2022-09-09_23.37.05.png
使用道具 举报 回复 支持 反对
发表于 2022-9-17 17:46:12 | 显示全部楼层
9月17日,遇到楼主同样的情况,删除证书,删除缓存,重启宝塔,修复宝塔,重启服务器,均续签失败。搜到楼主的帖子后,跟着做了下write_log,dns验证的时候不知道auth_to变量以前的内容是啥,目前auth_to内容是个目录类似/www/xxx/xxxx这种(忘了截图了),导致后面这个查找‘|’字符就是-1,所以在这里直接return None了。我这里用不到其他方式,所以我这里直接把auth_to在判断前强制赋值为
auth_to=“AliyunDns|”
暂时凑合用。
楼主都已经帮着宝塔做了测试和开发两个岗位应该做的事情了,结果发现竟然没有后续了。。。同时也看了下官方这个回复,在楼主这么多证据说明压根没有去调用dnsAPI写解析的时候,还在说Let's Encrypt这些,确实很不专业。。。
同时不知道这个BUG为什么会在论坛标记为已解决,如果说是因为楼主说了“我换了DNS解析套餐后,手动解析成功了”接直接关闭问题,那就我建议官方可以下架自动给几个dns运营商通过api添加dns解析的功能吧。
使用道具 举报 回复 支持 反对
发表于 2022-9-17 17:47:18 | 显示全部楼层
9月17日,遇到楼主同样的情况,删除证书,删除缓存,重启宝塔,修复宝塔,重启服务器,均续签失败。搜到楼主的帖子后,跟着做了下write_log,dns验证的时候不知道auth_to变量以前的内容是啥,目前auth_to内容是个目录类似/www/xxx/xxxx这种(忘了截图了),导致后面这个查找‘|’字符就是-1,所以在这里直接return None了。我这里用不到其他方式,所以我这里直接把auth_to在判断前强制赋值为
auth_to=“AliyunDns|”
暂时凑合用。
楼主都已经帮着宝塔做了测试和开发两个岗位应该做的事情了,结果发现竟然没有后续了。。。同时也看了下官方这个回复,在楼主这么多证据说明压根没有去调用dnsAPI写解析的时候,还在说Let's Encrypt这些,确实很不专业。。。
同时不知道这个BUG为什么会在论坛标记为已解决,如果说是因为楼主说了“我换了DNS解析套餐后,手动解析成功了”接直接关闭问题,那就我建议官方可以下架自动给几个dns运营商通过api添加dns解析的功能吧。
使用道具 举报 回复 支持 反对
发表于 2022-9-19 23:46:32 | 显示全部楼层
zhanggangbz 发表于 2022-9-17 17:47
9月17日,遇到楼主同样的情况,删除证书,删除缓存,重启宝塔,修复宝塔,重启服务器,均续签失败。搜到楼 ...

我忘记补充了。

之前的情况是:

1、手动解析是可以,即自己去dnspod里添加txt记录
2、文件验证一直是可以的。但是我的宝塔面板是用来做反向代理的,反代之后就不能用文件验证了(当然可以通过修改宝塔默认nginx的反代配置来解决)
3、但我还是希望能过使用API这种验证方式,比较方便。而当时我是拿了一台新服务器全新安装宝塔,依然申请失败,这个问题就不是我配置的问题了。



我目前已经解决API验证失败的问题了,解决方案是:

1、ssh连接到服务器,然后使用bt命令进行面板修复(界面上的修复好像没效果),不知道是不是官方的代码有了更新
2、修复之后,使用新的子域名创建网站,申请SSL证书,能过申请成功;在旧网站的配置管理里进行申请,依然失败
3、对旧网站,我是把原来的ssl证书关闭了。然后重新申请了两次,成功了
使用道具 举报 回复 支持 反对
发表于 2022-9-20 09:09:38 | 显示全部楼层
宝塔用户_ijpbbz 发表于 2022-9-19 23:46
我忘记补充了。

之前的情况是:

您好,9月19号对此做了针对性的修复,您那边重新修复下面板,就好了。
使用道具 举报 回复 支持 反对
发表于 2022-9-20 19:25:45 | 显示全部楼层
大炮运维V587 发表于 2022-9-20 09:09
您好,9月19号对此做了针对性的修复,您那边重新修复下面板,就好了。

好的。我就是昨晚23点使用命令行工具进行修复,已恢复正常了
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

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

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

紧急运维服务

响应时间:3分钟

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

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

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

点击联系技术免费分析

工作时间:09:00至18:30

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