跳到主要内容
ecdsa.com

ACME(自动证书管理环境)

RFC 8555 定义的协议,最初为 Let's Encrypt 设计:客户端通过挑战证明自己控制相应的标识符,无需人工参与即可从 CA 获取证书。
其他写法Automatic Certificate Management EnvironmentRFC 8555CertbotLet's Encrypt client

整个流程使用以账户密钥做 JWS 签名的 HTTPS 请求:创建账户,提交列出各个标识符的订单,为每个授权完成一项挑战(http-01、dns-01 或 tls-alpn-01),把 CSR 发送到订单的 finalize URL,然后下载证书链。每个请求都携带新的 Replay-Nonce 值,并在受保护头部中绑定到所请求的 URL。

挑战响应由密钥授权推导而来,即 token ‖ "." ‖ base64url(JWK thumbprint of the account key)(RFC 8555 §8.1),因此其他账户无法重复使用。扩展包括:tls-alpn-01(RFC 8737)、IP 标识符(RFC 8738)、ACME 续期信息(RFC 9773),以及证书配置文件,例如 Let's Encrypt 的 classic、tlsserver 和 shortlived。

客户端有 Certbot、lego、acme.sh、Caddy 和 cert-manager;提供 ACME 的 CA 有 Let's Encrypt、ZeroSSL、Google Trust Services、Sectigo、DigiCert 和 SSL.com,step-ca 和 Vault 等私有 CA 也支持该协议。随着证书有效期逐步缩短到 47 天,ACME 实际上已成为公共 TLS 的必选项。

标准与参考资料

全部术语