泛域名证书教程:acme.sh一条命令,全站HTTPS自动续期

工具官网:acme.sh(GitHub,开源 ACME 客户端)

站多起来之后证书就开始折磨人:blog、api、status……每个子域一张证书,到期时间还各不相同,某天突然收到浏览器红色警告才发现忘了一张。解药是泛域名证书:一张证书覆盖所有子域,配合自动续期彻底告别手动管理。这篇主机评测网按 acme.sh 官方文档把全流程走一遍,一条命令签发,之后全自动。

先懂两个概念

泛域名(通配符)证书:*.example.com 一张证书管所有一级子域,加子域不用重新签。为什么必须用 DNS 验证:通配符证书不支持 HTTP 文件验证(CA 无法对 * 号发起 HTTP 请求),只能通过 DNS TXT 记录证明域名所有权——所以域名最好托管在支持 API 的 DNS 服务上,前面写过的Cloudflare 接入教程正好是前置条件。acme.sh 是纯 shell 实现的 ACME 客户端,支持 Let’s Encrypt、ZeroSSL 等多家 CA,全自动 DNS API 操作和续期,是命令行党的标准答案。

第一步:安装 acme.sh

官方安装命令(GitHub README 原文,邮箱换成自己的):

curl https://get.acme.sh | sh -s email=my@example.com

装完重新登录 shell(或 source 一下别名),acme.sh 命令即可用。此时安装脚本已经自动建好每日检查续期的 cron 任务——官方口径:证书每 30 天自动续期(CA 的 ARI 机制还会按需提前),你后面要操心的只有「部署」这一步。

第二步:签发泛域名证书

先去 Cloudflare 后台创建一个 API Token,权限只给 Zone – DNS – Edit(最小权限原则,泄露了也只影响 DNS 记录,账号安全的整体思路看加固那篇)。然后在服务器上:

export CF_Token="你的Token"
acme.sh --issue -d example.com -d '*.example.com' --dns dns_cf

第一条命令注入 Token 环境变量(具体变量名以官方 dnsapi 文档为准,dns_cf 用 CF_Token);第二条是官方 README 的泛域名示例——注意根域和通配符是两个 -d,这样签出来的证书同时覆盖 example.com 和所有子域。acme.sh 会自动通过 API 添加 TXT 验证记录、等生效、签发、清理,全程一两分钟。Token 会被保存供续期复用。

第三步:部署到 Nginx

签好的证书不要直接引用 acme.sh 内部目录(路径会变),用官方推荐的 install-cert 部署到固定位置(README 原文结构):

acme.sh --install-cert -d example.com \
  --key-file /path/to/keyfile/in/nginx/key.pem \
  --fullchain-file /path/to/fullchain/nginx/cert.pem \
  --reloadcmd "service nginx force-reload"

–reloadcmd 是官方特别强调的关键参数:续期后自动重载 Nginx 让新证书生效,漏了它就会出现「证书续了但网站还在用旧的」这种灵异现象。路径按你的实际 Nginx 配置改(宝塔用户对应站点 conf 里引用的证书路径)。

第四步:验证自动续期

crontab -l 能看到 acme.sh 的每日任务。想立即测试续期链路(含 reloadcmd):

acme.sh --renew -d example.com --force

跑一遍没报错、Nginx 正常重载,这套系统就算交付了:以后加子域不用管证书,到期自动续、自动重载。多个不同域名重复第二三步即可。

常见坑速查

症状/疑问 原因 处理
issue 报 DNS 验证超时 Token 权限不足或填错 核对 CF_Token 与 Zone DNS Edit 权限
续期后网站证书没变 漏了 reloadcmd 重新 install-cert 补上重载命令
证书路径突然失效 直接引用了 acme 内部目录 一律用 install-cert 部署到固定路径
只想给一个站上 HTTPS 用不着泛域名 宝塔/1Panel 面板一键申请单域名证书更省事

适用边界也说清楚:单站用户用宝塔或1Panel面板的一键 SSL 完全够;子域越签越多、或者用 Docker/Nginx 手工架构的,泛域名+自动续期才是质变。命令与行为均整理自 acme.sh 官方 GitHub 文档(2026-09-29 查询),DNS API 变量名以官方 dnsapi wiki 为准。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像-主机测评网
欢迎您留下宝贵的见解!
提交
头像-主机测评网

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容