证书签发成功后,还要确认续期任务会运行、新证书会写到 Web 服务读取的路径,以及重载命令能够生效。换服务器、调整配置或更换 DNS 凭证时,这几项都需要重新检查。
acme.sh 是纯 shell 的 ACME 客户端,使用 GPL-3.0 许可,支持多 CA、多验证方式、DNS API、deploy hook 和通知 hook。它默认支持 ZeroSSL,也支持 Let’s Encrypt、Google Public CA、SSL.com、Actalis 以及 RFC 8555 兼容 CA。
不要把证书工具当成一次性安装脚本
默认安装会创建每天执行的 cron 任务。安装后要检查任务是否实际运行、续期失败是否发出通知、reloadcmd 是否有效,以及证书文件的权限是否符合服务要求。
把安装路径、域名清单和签发方式记录下来,部署 hook 纳入配置管理,并写明日志位置与通知渠道。换机器或换维护人员时,这些记录可以用于恢复配置。
DNS-01 的便利和代价
DNS-01 通过 DNS 记录验证域名,适用于通配符证书,也可用于无法从公网访问的内网站点。acme.sh 提供多种 dnsapi 插件,可用于 NAS、路由器、Proxmox 和自托管面板等环境。
DNS-01 需要妥善保管 DNS 凭证。能写 TXT 记录的 token 如果权限过大,泄露后也可能被用于修改其他解析。应使用专用 token 和运行账户,限制权限,并记录 token 的更新流程;不要把主 DNS API key 放进随手复制的脚本。
deploy hook 才是生产边界
acme.sh 的 deploy hooks 支持常见 Web 服务、网关、存储、网络设备和管理面板。使用前要确认目标路径、文件权限、reload 命令与失败处理。签发出的证书只有部署到服务实际读取的位置,才会用于线上连接。
- 先在测试域名或 staging 环境验证签发。
- 确认服务读取的是 install-cert 输出路径,而不是 ~/.acme.sh 的内部管理路径。
- 把 reloadcmd 做成可重复执行的安全命令。
- 对 DNS token、证书私钥和日志做最小暴露。
- 至少每月主动检查一次续期任务和通知链路。
适合谁,不适合谁
acme.sh 适用于自托管服务、轻量云主机、边缘设备和多域名管理。使用者需要能够维护命令行任务、保管凭证并检查日志。如果没有人负责这些工作,安装自动续期工具也不能保证服务一直使用有效证书。
选用前可以先明确:谁维护 DNS 凭证,谁接收续期失败通知,服务重载失败时由谁处理,以及配置变更后如何回退。











