acme.sh 续期维护:DNS 凭证、证书部署与服务重载

签发证书后,检查每天的续期任务、DNS 凭证权限、服务读取路径及重载命令,并保留配置与通知记录。

把应用部署到土耳其|BRNCHOST · 土耳其 VDS
云服务器,积分可续期|雨云 · 国内外节点 · 积分兑换权益
低价年付,大流量 VPS|RackNerd · SSD 存储 · 1Gbps 端口
香港轻量,搭个小站|晚安云 · 香港云服务器
香港 VPS,大带宽可选|野草云 · BGP 直连
大陆访问,精品线路|搬瓦工 · CN2 GIA / CTGNet 套餐
资料归档,交给 AI 整理|WorkBuddy · 本地文件处理
建站起步,先看应用镜像|腾讯云 · 轻量应用服务器
CN2 GIA,中国方向优化|DMIT · Premium 网络
双 ISP 原生住宅 IP|丽萨主机 · 美国 9929 精品线路
高频 CPU,多地部署|Evoxt · 云服务器 · 每周异地备份
京东云轻量云主机:129元/年,新人专享,限购1台

证书签发成功后,还要确认续期任务会运行、新证书会写到 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 命令与失败处理。签发出的证书只有部署到服务实际读取的位置,才会用于线上连接。

  1. 先在测试域名或 staging 环境验证签发。
  2. 确认服务读取的是 install-cert 输出路径,而不是 ~/.acme.sh 的内部管理路径。
  3. 把 reloadcmd 做成可重复执行的安全命令。
  4. 对 DNS token、证书私钥和日志做最小暴露。
  5. 至少每月主动检查一次续期任务和通知链路。

适合谁,不适合谁

acme.sh 适用于自托管服务、轻量云主机、边缘设备和多域名管理。使用者需要能够维护命令行任务、保管凭证并检查日志。如果没有人负责这些工作,安装自动续期工具也不能保证服务一直使用有效证书。

选用前可以先明确:谁维护 DNS 凭证,谁接收续期失败通知,服务重载失败时由谁处理,以及配置变更后如何回退。