大家好,目前使用的宝塔最新版(免费版 5.9.0)。
最近也是遇到这个问题,前段时间收到邮件说证书快到期了,以为宝塔会自动续签,眼看着一天天就到期了,证书仍然没有更新,以为要到最后几天才会自动续签。。。今天偶然在acme.sh的WIKI上看到说60天后就会自动续签,因此我想这可能就是个问题了。。。
所以今天下午研究了一下,虽然看到系统的定时任务里面有acme.sh的条目,但是怎么会没有执行呢,然后手动执行这行代码也没有反应。。。
顺便说一下,走了一个弯路,希望看到这个的人不要再尝试了。就是看这行代码不起作用的时候,以为自动更新是由 certbot-auto 脚本来完成的,结果执行这个脚本,它要Python3的环境,而宝塔目前要Python2才能运行,我测试时就算装了Python3,导致了yum不正常,也修改了yum脚本到Python2。。然而 certbot-auto 本身也运行不成功。最后还是放弃
下面直接说产生问题的原因吧。
经过研究acme.sh发现它依赖的 CERT_HOME 不正确,这个在 /root/.acme.sh/account.conf 中定义的,默认是这样的:
- #LOG_FILE="/root/.acme.sh/acme.sh.log"
- #LOG_LEVEL=1
- #AUTO_UPGRADE="1"
- #NO_TIMESTAMP=1
-
- CERT_HOME='/www/server/panel/vhost/cert'
复制代码 (可以看到因为日志功能没开启,定时任务里面也没有产生日志,所以执行失败了也没有任何可参考的日志。。 )
当然主要问题是 CERT_HOME 这个指定的目录一是不存在,二是真实的证书目录也不是这个。这里应该改成:
这样之后,定时任务里面的那行代码就会起作用了。
希望能帮助到遇到这个问题的人。
|
|