使用acme.sh手动更新ssl证书,千万别忘了更新CDN证书信息
知识分享 2022年12月23日 11:47:23 羽度非凡
虽然现在多数站长都喜欢使用宝塔面板,但我还是更倾向于原生化的web环境,所以我的服务器环境都是直接安装LAMP或LNMP套件包,目前这类套件包的安装也比较简单,一些开发者直接打包了相应的一键安装包,SSL证书的申请和安装也包含在一键安装包中。
由于免费的SSL证书一般都有有效期,为了管理更加方便,多数环境安装包集成了自动更新SSL证书的功能,早期会使用certbot-auto设置自动化更新脚本任务,但现在certbot-auto已经过时,大家已经改用acme.sh作为SSL证书的签发工具了。
不过有时候acme.sh偶尔也会卡壳,导致自动更新SSL证书的功能失效,所以有时候就需要手动更新SSL证书,但手动更新SSL证书并不需要去手动申请、下载、安装……一系列繁琐操作,同样借助acme.sh可以直接一步完成。
例如我的“非凡博客”目前使用的是Let's Encrypt免费证书,证书有效期是90天,正好现在距离证书到期还有不到半个月,所以我手动更新了一下。
更新的方法:
1.打开终端,连接服务器,更新acme.sh脚本工具
命令:acme.sh --upgrade
2.使用acme.sh更新服务器本地所有SSL证书
命令:acme.sh --renew-all
如果你的服务器有多个网站的SSL证书,而你只想更新其中一个网站的SSL证书,可以使用“-d 域名”参数,例如
命令:acme.sh --renew -d yudufeifan.cn
我这里两个网站的SSL证书日期一样,所以为了方便管理,每次都是直接同时更新两个网站的SSL证书。
此时网站对应的SSL证书有效期已经延长了,如果你没有使用CDN云加速之类的工具,那么此时查询网站域名对应的SSL证书有效期,已经是新的时效日期了,但如果你和我一样使用了CDN云加速工具的话,别忘了在CDN管理平台重新部署一次SSL证书。
从服务器端下载网站对应的SSL证书文件,我这里的SSL证书路径是“/usr/local/apache/conf/ssl/域名/”,至于其他环境工具,视情况而定了。
我这里使用的是百度云加速,“证书”一项直接把fullchain.cer文件内容复制进去,“私钥”一项直接把“yudufeifan.cn.key”文件内容复制进去,然后把旧的证书部署取消并删除。
再次查询SSL证书有效期,可以看到SSL证书的时效日期已经更新了。