自动证书管理 ACME协议:证书申请、签发、续期 作者:马育民 • 2026-08-07 17:34 • 阅读:10005 # 介绍 **ACME(Automatic Certificate Management Environment,自动证书管理环境)**,IETF标准 **RFC 8555**。 是一套开放标准协议,实现 **TLS/SSL证书申请、域名验证、签发、续期、吊销全流程自动化**,最知名的使用者就是 Let’s Encrypt 免费证书机构。 传统HTTPS证书:手动生成CSR、提交、人工审核、下载证书、到期手动续期,极易忘记续期导致网站证书失效。 ACME把全部流程变成机器之间API交互,几乎无需人工干预。 ### 版本 - ACME v1:旧版,已经停止服务。 - **ACME v2(RFC8555)**:现在全部使用的版本,支持通配符证书。 # 角色 1. **ACME客户端**:运行在你的服务器,处理挑战、和CA通信 常见工具:`certbot`、`acme.sh`、`lego`;Caddy、Traefik内置ACME客户端 2. **ACME服务端(CA)**:证书颁发机构,如Let’s Encrypt、Buypass等,提供ACME接口 # 三大域名验证方式 CA通过“挑战”确认:**你真正拥有这个域名**,才给你发证书。 ### 1. **HTTP‑01(最常用)** 客户端在网站路径:`http://域名/.well‑known/acme‑chchallenge/token` 放置验证文件;CA访问该地址校验。 限制:需要80端口开放;**不能申请通配符证书**。 ### 2. **DNS‑01** 客户端给域名添加一条 `_acme‑challenge.xxx.com` 的TXT解析记录;CA查询DNS记录完成校验。 ✅ **支持通配符证书 `*.example.com`**;不需要开放80端口;适合内网域名。 ### **TLS‑ALPN‑01** 在443端口运行特殊TLS握手完成验证;不需要HTTP服务。 > 旧版本TLS‑SNI‑01因为安全漏洞,已经废弃不用。 # 工作流程 1. 客户端生成账户密钥对,向CA注册账号,后续所有请求都用该私钥签名。 2. 提交证书订单,告诉CA需要哪些域名的证书。 3. CA下发验证挑战,客户端完成挑战(放文件 / 添加DNS记录)。 4. CA从多网络节点校验挑战是否生效。 5. 校验成功,客户端提交CSR证书请求。 6. CA签发证书,客户端下载PEM证书链,部署到Web服务器。 7. 到期前自动重复整套流程,完成**自动续期**。 ## 关键特点 - 标准化:多家CA都支持同一套协议,切换CA不用改大量脚本。 - 全自动化:无人值守自动续期,避免证书过期事故。 - 安全:所有请求JWS签名,防篡改冒充。 ## 典型场景 - 网站自动申请免费HTTPS证书; - K8s Ingress‑cert‑manager 底层就是ACME协议; - 私有CA也可以部署ACME服务端做内部证书自动化。 原文出处:/show_1GW3orXUqb1m.html