acme.sh:用 Shell 脚本搞定 SSL 证书这件事
2026/6/25 15:44:23 网站建设 项目流程

文章目录

  • acme.sh:用 Shell 脚本搞定 SSL 证书这件事
    • 1、 这玩意儿是干嘛的
    • 2、 装起来有多简单
    • 3、 支持哪些验证方式
    • 4、 证书续期和 ARI
    • 5、 哪些项目在用
    • 6、 适合谁用

acme.sh:用 Shell 脚本搞定 SSL 证书这件事

acme.sh 在 GitHub 上已经拿到 46,949 Star 了。

一个用纯 Shell 写的 ACME 协议客户端,专门干一件事——自动申请和续期 SSL 证书。支持 ZeroSSL、Let’s Encrypt、Google Public CA 等多家证书颁发机构,被 FreeBSD.org、Proxmox、pfsense 这些项目直接用在生产环境里。

1、 这玩意儿是干嘛的

就一件事:让你不用再手动折腾 SSL 证书。

装完之后,一行命令就能申请证书。之后每 30 天自动检查,到期前自动续期,续完自动把新证书装到 Nginx 或 Apache 上,顺带把服务 reload 一遍。整个过程你什么都不用管。

它不依赖 Python,不依赖其他运行时,就是一个 Shell 脚本。Bash、dash、sh 都能跑,不需要 root 权限(standalone 模式除外)。

2、 装起来有多简单

安装就一行:

curlhttps://get.acme.sh|sh-semail=my@example.com

装完之后它会干三件事:把脚本放到~/.acme.sh/目录下,建一个acme.sh的别名,再加一条每天跑一次的 cron 任务。关掉终端重新打开,就能用了。

申请证书:

acme.sh--issue-dexample.com-w/var/www/html

-w指向你网站的根目录,脚本会往里面放一个验证文件,CA 来检查完就签发证书。

装到 Nginx 上:

acme.sh --install-cert-dexample.com\--key-file /etc/nginx/ssl/key.pem\--fullchain-file /etc/nginx/ssl/fullchain.pem\--reloadcmd"service nginx force-reload"

之后每次续期,它都会自动把新证书复制过去,然后执行 reloadcmd。

3、 支持哪些验证方式

方式很多,按场景选就行:

Webroot 模式:你已经有 Nginx 或 Apache 在跑,指定网站根目录就行,不用停服务。

Standalone 模式:脚本自己起一个 HTTP 服务器监听 80 端口,适合还没有 Web 服务的机器。

Apache / Nginx 模式:脚本直接跟你的 Web 服务器交互完成验证,不用往 Web 目录里写文件。

DNS 模式:通过添加 DNS TXT 记录来验证。支持通配符证书,也支持泛域名。如果你的 DNS 服务商有 API,acme.sh 内置了几十家 DNS 服务商的对接,全自动完成。Cloudflare、阿里云、腾讯云、AWS Route53 这些都在列表里。

DNS Persist 模式:在 DNS 里放一条长期有效的验证记录,之后每次签发和续期都复用它,不用再改 DNS。适合不方便用 API 但又想自动续期的场景。

4、 证书续期和 ARI

证书默认 30 天检查一次,到期前自动续期。如果你用的 CA 支持 ARI(ACME Renewal Information,RFC 9773),acme.sh 会自动读取 CA 建议的续期窗口,在那个时间范围内随机挑一个时间点续期。这样做的好处是避免所有客户端在同一时刻冲向 CA,分散负载。

不需要任何额外配置,装完就生效。

想手动续期也可以:

acme.sh--renew-dexample.com--force

5、 哪些项目在用

FreeBSD.org 的官方博客写过用 acme.sh 管理证书的教程。Proxmox VE 的官方 Wiki 里把 acme.sh 列为推荐的证书管理方案。pfsense 的 FreeBSD ports 里直接集成了它。ruby-china.org、discourse.org、lnmp.org 这些项目也在用。

6、 适合谁用

管过服务器的人都知道,SSL 证书这事不大但很烦。申请、部署、续期、reload,每个环节都得盯着。漏了续期,网站就挂了。

acme.sh 把这几个环节串成了一条线,装完之后基本不用再管。适合:

  • 自己有服务器、在跑 Nginx 或 Apache 的运维和开发者
  • 在做自动化部署、想把证书管理塞进 CI/CD 流程的团队
  • 用 OpenWRT、Proxmox 这类嵌入式或虚拟化平台的用户

它本身是一个 GPLv3 协议的开源项目,由 ZeroSSL 维护,接受社区贡献。

D 流程的团队

  • 用 OpenWRT、Proxmox 这类嵌入式或虚拟化平台的用户

它本身是一个 GPLv3 协议的开源项目,由 ZeroSSL 维护,接受社区贡献。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询