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 是客户端工具

作者 admin

百度广告效果展示