acme.sh 的使用心得


起因

网上关于acme.sh注册的证书的更新机制没有太多的讨论,为此吃了不少苦头,踩了不少坑。总结出了一些自己的心得,便在这里提几句。

正文

1· acme.sh的更新时间

可以通过代码

acme.sh --list

查看achme.sh保存的证书,证书生成的日期及其更新日期

可以看出,acme.sh默认将在证书剩余1个月的时候进行自动更新

2· acme.sh的更新方式

acme.sh会保存你的证书的注册方式,当一个证书剩余1个月时,acme.sh将自动尝试更新你的证书,如果你在注册完证书后,使用了 --installcert 函数,那么acme.sh也会在更新完证书后运行 --installcert 的内容。
下面举个使用 acme.sh --installcert 函数的栗子🌰:

acme.sh --ecc --installcert -d example.com.one \
 --key-file /usr/local/nginx/conf/ssl/example.com.key \
 --fullchain-file /usr/local/nginx/conf/ssl/example.com.cer \
 --reloadcmd "lnmp nginx reload"

如果你配置好的 --installcert 函数需要改动,你可以将修改后的 --installcert 命令重新在终端运行一遍,acme.sh会自动将新的命令保存并用于下一次的更新。。
--installcert 函数是使用acme.sh非常好用的函数,配置好能让acme.sh自动更新证书,无需你自己reload NGINX,做到完全的自动化更新,减轻你的工作量。

acme.sh会保存注册时的注册方式、参数及 --installcert 的内容,也就是说,你应该一开始使用acme.sh时便需要好好规划证书的位置及其安装方式,如果你是使用 --standalone 函数进行注册的,那么在往后更新时,acme.sh会与NGINX冲突进而无法正常更新证书

3· 如何强制更新证书

正确的利用强制更新证书的功能,可以让你很好的判断你acme.sh的配置是否正确:

acme.sh (--ecc) --renew -d example.com --force

又或者你想要全部证书都强制更新:

acme.sh --cron -f
强制执行更新任务无需任何操作,acme.sh便会尝试将你的证书全部进行更新

4· 如何删除证书

当你的证书已经无需使用时,建议把它从你的acme.sh中删掉,查看 acme.sh --list 时会舒服很多🤣
删除证书:

acme.sh (--ecc) --remove -d <SAN_Domains>

声明:Starry|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - acme.sh 的使用心得


「心如花木,向阳而生」