ACME 托管证书
ACME 托管证书
安装 acme. sh
1 | curl https://get.acme.sh | sh -s email=my@example.com |
acme. sh 将被安装到 ~/.acme.sh/
路径下,且安装过程不会污染已有的系统任何功能和文件,所有的修改都限制在安装目录中。
生成证书
这里只推荐通过 DNS API 进行生成
下面以腾讯云 DNSPod 为例,其他的如阿里云、cloudflare 等,参见 wiki 说明
1 | export DP_Id="123456" |
剩下的就不用操心了, acme.sh
会帮我们搞定。最后,会输出证书相关文件所处的路径,按需使用即可。
1 | [Wed 19 Jul 2023 07:03:27 AM EDT] Your cert is in: /root/.acme.sh/your-domain.com_ecc/your-domain.com.cer |
查看已安装证书
1 | acme.sh --info -d example.com |
更新 acme. sh
目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme. sh 也经常更新以保持同步.
升级 acme.sh 到最新版 :
1 | acme.sh --upgrade |
如果你不想手动升级,可以开启自动升级:
1 | acme.sh --upgrade --auto-upgrade |
之后, acme. sh 就会自动保持更新了。
你也可以随时关闭自动更新:
1 | acme.sh --upgrade --auto-upgrade 0 |
手动更新证书
先更新一次 acme 脚本
1 | acme.sh --upgrade |
然后更新证书
1 | acme.sh --renew -d 域名 |
也可以一次性更新所有证书
1 | acme.sh --renew-all |
如果证书没有过期,需要强制更新,使用 --force
1 | acme.sh --renew -d 域名 --force |
[!warning]
acme 更新后,别忘了更新 cdn 的证书。
如果发现证书已经更新了,但网页访问仍然提示过期,不妨重启 nginx 试试。
自定义脚本
有时我们希望在 acme.sh
更新证书后,执行一些新的操作,例如部署或是上传证书。
这可以在 --reloadcmd
参数中指定:
1 | acme.sh --issue -d example.com --dns dns_cf --reloadcmd "/path/to/your_custom_script.sh" |
如果你已经配置了 acme.sh
来自动更新证书,也可以直接编辑 ~/.acme.sh/
目录下的配置文件 account.conf
,在文件末尾添加如下内容:
1 | Le_ReloadCmd="/path/to/your_custom_script.sh" |
这样,在每次更新证书完成后时,acme.sh
都会自动执行你指定的脚本。
请确保自定义的脚本具有执行权限,并且可以正确处理所需的操作。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 日勿の部落格!