之前通过宝塔申请的Let's Encrypt 证书,最近要到期了。通过宝塔管理后台一直无法续签成功。
网上搜了搜,好像有很多人都有这样的问题。不知道是不是他们为了推广自己的收费证书故意搞的。
网上搜了下,找到了一个通过ACME协议实现证书签发的方法。acme.sh中文说明。
流程走下来没有什么问题,因为涉及到网站目录的内容读写,需要注意登录的用户有没有写的权限。
acme.sh脚本默认的证书是zerossl的。如果是新申请的网站无所谓,切换回Let's Encrypt的方法:
第一步安装acme.sh完成后,输入
acme.sh --set-default-ca --server letsencrypt
如果想切换回默认的zerossl的话,命令是:acme.sh --set-default-ca --server zerossl
第三步安装证书的部分,重新加载配置的命令,可能会报错,需要根据提示进行修改,我用的nginx,命令是:
/etc/init.d/nginx reload
最后是宝塔管理页面中,网站的配置文件中,ssl证书配置文件中的ssl_certificate和ssl_certificate_key也需要改成对应的证书文件目录。
这样一套下来,证书更新就完成了。剩下的就是两个月后看是不是自动更新证书了。