RFC 8555 - 自动证书管理环境 (Automatic Certificate Management Environment, ACME)
- 状态: Proposed Standard
- 发布日期: 2019 年 3 月
- Stream: IETF
- 勘误: 无勘误
摘要 (Abstract)
使用 X.509 的公钥基础设施 (Public Key Infrastructure using X.509, PKIX) 证书可用于多种目的, 其中最重要的是域名认证. 因此, Web PKI 中的证书颁发机构 (Certification Authorities, CAs) 被信任来验证证书申请者是否能合法代表证书中的域名. 截至本文撰写时, 这种验证通过一组临时机制完成. 本文档描述一种协议, CA 和申请者可以使用该协议自动化验证和证书签发过程. 该协议还为其他证书管理功能提供设施, 例如证书吊销.
本备忘录状态 (Status of This Memo)
本文档是 Internet 标准路线文档.
本文档是 Internet Engineering Task Force (IETF) 的产物. 它代表 IETF 社区的共识. 它已经接受公开审查, 并获 Internet Engineering Steering Group (IESG) 批准发布.
关键特性 (Key Features)
ACME 协议收益:
- 完全自动化 (Fully Automated): 从请求到续期无需人工干预
- 频繁更新 (Frequent Updates): 支持短期证书 (Let's Encrypt 默认 90 天)
- 降低成本 (Cost Reduction): 消除人工流程成本
- 增强安全性 (Enhanced Security): 短期证书降低暴露风险
典型 ACME 工作流:
Client (ACME Client) ACME Server (CA)
| |
| 1. Create Account |
|--------------------------------------->|
| <-- Account URL |
| |
| 2. Submit Certificate Order |
|--------------------------------------->|
| <-- Order Object + Auth Challenges |
| |
| 3. Complete Domain Validation |
| (HTTP-01 or DNS-01) |
|--------------------------------------->|
| <-- Validation Success |
| |
| 4. Finalize Order (Submit CSR) |
|--------------------------------------->|
| <-- Certificate URL |
| |
| 5. Download Certificate |
|--------------------------------------->|
| <-- PEM Format Certificate Chain |
核心组件 (Core Components)
资源类型 (Resource Types)
- Directory: 服务器 API 端点目录
- Account: 客户端账户信息
- Order: 证书订单
- Authorization: 域名授权
- Challenge: 验证挑战
- Certificate: 已签发证书
验证方法 (Validation Methods)
- HTTP-01 Challenge: 在特定 HTTP 路径提供文件
- DNS-01 Challenge: 提供特定 DNS TXT 记录
常见 ACME 客户端 (Popular ACME Clients)
- Certbot (EFF Official)
- acme.sh (Shell Script)
- Lego (Go Language)
- win-acme (Windows)
相关 RFC (Related RFCs)
- RFC 7515 - JSON Web Signature
- RFC 5280 - X.509 Certificates
- RFC 6797 - HSTS
- RFC 7807 - Problem Details for HTTP APIs
参考资源 (References)
- Official RFC: RFC 8555
- IETF DataTracker: RFC 8555 DataTracker
- Let's Encrypt: https://letsencrypt.org/docs/
有关详细技术规范, 请参考官方 RFC 8555 文档.