【已解决】续签Let's Encrypt证书 失败
Traceback (most recent call last):File "/www/server/panel/class/acme_v2.py", line 1456, in renew_cert write_log('|-本次跳过域名:{},因连续3次续签失败,不再续签此证书'.format(self._config['orders']['domains']))KeyError: None本帖最后由 befantasy 于 2021-12-2 16:31 编辑
官方团队回复的真是胡说八道。
也遇到了这个问题半年了,两次续签失败,搜遍全网也没找到个有用的解决方案。搜到这里给的官方解答更是离谱。
最后自己折腾解决了,共楼主参考。
1、py脚本自动续签失败,看log是3次续签失败导致的脚本中断。可是每次宝塔界面却可以手动续签。所以排除网络问题,配置问题。
2、研究了一下/www/server/panel/class/acme_v2.py这个脚本,log中提示的1456行, if self._config['orders']['retry_count'] >= 3: 看起来是个检测重试次数retry_count的语句。
3、寻找这个retry_count的计数值是在哪里保存,在py脚本的62行找到了: _conf_file = 'config/letsencrypt.json' 。
4、编辑/www/server/panel/config/letsencrypt.json,在里面的order段落中,找到了好几个证书续签的条目。其中有几个是之前删过的域名(看domains和save path),并且retry_count=3。
5、备份配置文件,把这几个retry_count=3的证书续签的order删掉再次运行py脚本,问题解决。
6、如果还有问题,可以把所有order都删掉,然后去宝塔的ssl面板中删除证书,再重新申请即可。
综上所述,问题的所在应该是原来在宝塔ssl证书界面的某些操作,导致无效的续签信息保存在了/www/server/panel/config/letsencrypt.json当中,宝塔的校验逻辑又不缜密,web界面删除站点或者证书时,没有将letsencrypt.json中相应的续签信息删掉,导致配置文件中一直存在retry_count=3的条目。acme.py脚本执行时,检测到retry_count超出限制,脚本中断执行。 这个主要问题其实是
/www/server/panel/class/acme_v2.py第1456行的这句话变量问题
self._config['orders'][index]['domains'] -> self._config['orders'][i]['domains']
把index 改成 i 就可以了
2024.12.27 续签失败,前面的方法都用过了。
这个问题又出现了。 续签的条件是您当时申请证书的时候,是哪几个域名的证书,然后续签的时候也就依据当时申请证书的时候的域名进行续签,续签的时候不允许有失败的域名,如果有失败的域名,那么整个续签任务也会失败。您如果不想现在没有使用的域名续签,需要关闭SSL,重新申请当前的。 堡塔安全赤井秀一 发表于 2021-11-15 11:19
续签的条件是您当时申请证书的时候,是哪几个域名的证书,然后续签的时候也就依据当时申请证书的时候的域名 ...
你这句话我没太明白呢。
意思是后面修改了非Let's Encrypt证书 自动续签就会失败? 無無無無 发表于 2021-11-15 11:28
你这句话我没太明白呢。
意思是后面修改了非Let's Encrypt证书 自动续签就会失败? ...
比如,使用了let's encrypt如果出现删除或添加新域名操作,可能就续签失败了,这种情况你关闭SSL,重新申请一个就可以了 堡塔安全赤井秀一 发表于 2021-11-15 11:42
比如,使用了let's encrypt如果出现删除或添加新域名操作,可能就续签失败了,这种情况你关闭SSL,重新申 ...
我把所有使用let's encrypt证书的网站都关闭SSL,再证书夹里面也都删了,空的时候 执行任务也是报这个错,重新申请了证书 还是报这个错。:L 無無無無 发表于 2021-11-15 12:21
我把所有使用let's encrypt证书的网站都关闭SSL,再证书夹里面也都删了,空的时候 执行任务也是报这个错 ...
切换面板到最新测试版本再申请证书试试
befantasy 发表于 2021-12-2 16:26
官方团队回复的真是胡说八道。
也遇到了这个问题半年了,两次续签失败,搜遍全网也没找到个有用的解决方案 ...
感谢您的反馈,这边将您的处理过程反馈开发了。
宝塔用户_ywiwsn 发表于 2021-12-8 16:22
这个主要问题其实是
/www/server/panel/class/acme_v2.py第1456行的这句话变量问题
self._config['orders ...
这个我们上个月已经修复了 本帖最后由 宝塔用户_cjiqru 于 2022-2-11 21:56 编辑
宝塔用户_ywiwsn 发表于 2021-12-8 16:22
这个主要问题其实是
/www/server/panel/class/acme_v2.py第1456行的这句话变量问题
self._config['orders ...
赞!用宝塔面板几年了,这个续签没有正常使用过,最新版本不知道怎样。另外你说的index改为i,刚看这个文件的源码,里面已经是i了 谢花郎 发表于 2021-12-8 15:35
感谢您的反馈,这边将您的处理过程反馈开发了。
这个有解决?我今天还有这个问题 mx8 发表于 2022-3-12 22:51
这个有解决?我今天还有这个问题
已经修复了,如果是老版本的话会有这个问题,建议更新到最新版本面板使用 befantasy 发表于 2021-12-2 16:26
官方团队回复的真是胡说八道。
也遇到了这个问题半年了,两次续签失败,搜遍全网也没找到个有用的解决方案 ...
确实这样就解决了
之前删除的几个域名
还有之前用let 后期换成别的证书了
不知道为什么这个文件还有 就一直申请失败
删除这个文件 letsencrypt.json
然后关闭想申请的网站的证书
重新申请let证书
这个文件会重新生成的 就行了
befantasy 发表于 2021-12-2 16:26
官方团队回复的真是胡说八道。
也遇到了这个问题半年了,两次续签失败,搜遍全网也没找到个有用的解决方案 ...
正解!也遇到不能续签的同样问题,一直提示:因连续5次续签失败,不再续签此证书(可尝试手动续签此证书,成功后错误次数将被重置);
手动续签成功了,可还是一直提示这个错误;
无奈下,删除文件letsencrypt.json后,重新手动申请SSL,之后一切正常;
根源就在这个letsencrypt.json文件;
页:
[1]
2