ACME 是一个自动颁发和续期 HTTPS 证书的协议,让你不需要手动申请证书。acme.sh 只是一个实现 ACME 协议的工具。
什么是 ACME?
ACME 的全名是:Automated Certificate Management Environment(自动化证书管理环境)
它是一个由 IETF 制定的标准协议(RFC 8555),主要用于:
📌 自动申请 SSL 证书、自动验证域名、自动续期证书
简单说:
ACME 是一种让服务器能自动申请 HTTPS 证书的协议。
Let’s Encrypt 使用 ACME 来免费提供证书,所有 ACME 客户端(acme.sh、Certbot、Caddy、Traefik 等)都必须遵循 ACME 协议。
为什么要有 ACME?
在 ACME 协议出现之前,你要申请证书需要:
- 登录证书网站
- 填写资料
- 上传验证文件
- 下载证书
- 自己手动安装
- 几个月后还要再续期
很麻烦!
有了 ACME:
- 申请证书 → 自动
- 域名验证 → 自动
- 证书下载 → 自动
- 安装证书 → 自动
- 续期证书 → 自动
你完全不用手动管理证书了。
这就是 acme.sh、Certbot 能自动续期证书的原理。
ACME 协议做了哪些事?
ACME 主要包含三个部分:
① 验证挑战(Challenge)
确认你对域名有控制权:
- DNS-01(DNS TXT 验证)
- HTTP-01(访问特定URL)
- TLS-ALPN-01(443端口验证)
② 申请证书
你告诉服务器:“我要申请这个域名的证书”。
③ 续期证书
ACME 服务会自动续期旧证书。
ACME 服务端是谁?
- Let’s Encrypt(全球最大)
- ZeroSSL
- Buypass
- Google Trust Services
- Sectigo(部分支持)
他们都是 ACME 服务器。
ACME 与 acme.sh 的关系
ACME 是一个协议
acme.sh 是一个基于 ACME 的客户端工具
就像:
HTTP 是协议
curl 是客户端工具