SSL/TLS 证书可确保网站和服务的安全,但手动管理这些证书既繁琐又有风险。 这就是ACME 协议的作用所在。
ACME 是自动证书管理环境(Automated Certificate Management Environment)的简称,它能自动完成证书的发放、更新和撤销,从而避免了人工操作,降低了证书过期导致网站离线的几率。

ACME 最初是由互联网安全研究小组(ISRG)为 Let’s Encrypt 开发的,现已发展成为与多家证书颁发机构合作的行业标准,并被全球多家机构采用。
随着证书有效期的不断缩短,这一变化变得越来越重要。最长有效期从 2026 年 3 月起变为200 天,从 2027 年 3 月起降至100 天,从 2029 年 3 月 15 日起仅为47 天。到那时,任何规模的人工证书管理都不再实用。
目录
什么是 ACME 协议?
ACME 协议(即自动证书管理环境)实现了 SSL/TLS 证书整个生命周期的自动化。它通过 ACME 客户端与证书颁发机构之间的标准化通信来管理证书的颁发、验证、安装、更新和撤销,从而消除了人工操作步骤。
该协议采用客户端-服务器架构,ACME 客户端(安装在服务器上安装)与ACME 服务器(由证书颁发机构运行)通信,无需人工干预即可请求、验证和管理证书。这种自动化可防止证书过期,降低安全风险,并将 IT 团队从重复的人工任务中解放出来。
ACME 协议的演变
互联网安全研究小组专门为Let’s Encrypt(2015 年推出的免费公共证书颁发机构)创建了 ACME。第一个版本ACME v1 于 2016 年推出,并证明了这一概念在规模上是可行的。
2018 年,ACME v2带有重要改进。它增加了对 通配符证书(涵盖域下的所有子域),并引入了 DNS TXT 验证以提高安全性。ACME v2 在 IETF 发布 RFC 8555 时成为官方标准,ACME v1 则在 2021 年被淘汰。
由于 ACME 是开源的,它已被整个行业的公共证书颁发机构和 PKI 供应商所采用。您不会被锁定在一个单一的 CA 中,您可以从多个提供商中进行选择,也可以根据需求的变化在它们之间进行切换。这种灵活性是 ACME 成为自动证书管理首选协议的原因之一。
ACME 协议的工作原理
ACME 采用客户端-服务器模式。ACME 客户端在服务器或设备上运行,并与由证书颁发机构运营的ACME 服务器通信。整个交换使用通过 HTTPS 发送的 JSON 消息,因此既安全又标准化。
以下是基本工作流程:
- 选择代理和域。在服务器上安装 ACME 客户端(如Certbot或Caddy),并告诉它要保护哪个域。
- 选择 CA。将客户端指向与 ACME 兼容的证书颁发机构–DigiCert、Sectigo 或任何其他支持该协议的 CA。
- 生成一对密钥和 CSR。客户端创建私钥和包含域名信息的证书签名请求(CSR)。
- 证明域控制。 CA 要求您证明您对域名的控制权。 您可以使用 HTTP-01 挑战(在网络服务器上放置文件)或 DNS-01 挑战(在 DNS 中添加 TXT 记录)进行响应。
- 签署一个 nonce。 客户端用你的私钥签署一个唯一的 nonce(一次性随机值),以证明其真实性。
- 领取证书。CA 会验证所有内容并签发您的 X.509 证书.证书将发送到 ACME 客户端并自动安装。
更新和吊销遵循相同的流程。客户可以在旧证书到期前申请新证书,或撤销已损坏的证书,所有这些都无需人工干预。
ACME 支持的证书类型
ACME 主要签发域验证 (DV) 证书,这种证书只验证您对域的控制权。这些证书的签发速度最快,而且适用于大多数网站和服务。
组织验证(OV)和扩展验证(EV)证书需要额外的证明(如业务文档)来确认组织的身份。ACME 可以支持 OV 和 EV 证书,但由于协议本身不处理业务验证,因此您需要添加人工验证步骤。一些 CA 提供混合工作流程,将 ACME 自动化与人工审核相结合,以获得更高保证的证书。
通配符证书值得特别一提。ACME v2 增加了对通配符的本地支持,通配符可确保域(如 *.example.com)下所有子域的安全。要颁发通配符证书,必须完成 DNS-01 挑战–在 DNS 区域添加 TXT 记录–因为 HTTP 挑战无法证明对所有可能子域的控制。这种 DNS 验证增加了一层安全性,使通配符证书更加可靠。
使用 ACME 的好处
- 自动化消除手工作业。手动证书管理既慢又容易出错。ACME 实现了每个步骤的自动化–签发、安装、更新和撤销,因此您无需生成 CSR、复制粘贴 ACME 证书或设置日历提醒。这种自动化减少了人为错误,使您的团队能够专注于更重要的工作。
- 通过自动更新提高安全性。过期的证书会导致中断和安全警告。ACME 通过在证书过期前自动更新证书来提高安全性,因此您不必担心忘记更新截止日期。这将确保您的在线服务和用户的安全。
- 节约成本,提高可见性。许多与 ACME 兼容的 CA(如 Let’s Encrypt)都提供免费的 DV 证书。即使使用商业 CA,自动化也能降低管理 ACME 证书的人力成本。此外,当您将 ACME 与证书管理平台集成时,您就可以集中查看所有证书–有效期、签发状态和生命周期事件–因此不会有任何疏漏。
- CA 灵活性。ACME 的开放标准意味着您不会被锁定在一家供应商。如果您的 CA 出现故障或您想更换供应商,您可以将 ACME 客户端指向不同的 CA,而无需重写自动化。这种与 CA 无关的方法为您提供了灵活性,帮助您避免被供应商锁定。
- 开源和无障碍。ACME 是一个开放协议,不收取许可费用。任何人都可以实施 ACME 客户端或服务器,并且存在一个蓬勃发展的工具生态系统。这种开放性鼓励创新,使各种规模的组织都能使用自动证书管理。
所有这些优势都能减少中断、提高合规性和基础设施的安全性。ACME 将证书管理从反复出现的令人头疼的问题变成了一项只需运行的后台任务。
设置 ACME 客户端
开始使用 ACME 非常简单。以下是分步指南:
1.选择一个兼容的 ACME 客户端并指定你的网域。
选择一个与你的环境兼容的 ACME 客户端。常用选项包括
- Certbot– 最广泛使用的客户端,由电子前沿基金会维护
- Caddy– 内置 ACME 支持的网络服务器
- ACMESharp– 适用于 Windows 环境的 PowerShell 模块
- GetSSL– 用于类 Unix 系统的简单 bash 脚本
- Posh-ACME– 另一个具有高级功能的 PowerShell 选项
告诉客户您要保护哪个(或哪些)域。
2.选择与客户端兼容的 CA。
将客户端指向 ACME 服务器。Let’s Encrypt 是最常见的选择,但 Sectigo、Keyfactor 和其他商业 CA 也提供 ACME 端点。请确保您使用的是与 ACME v2 兼容的服务器–ACME v1 已被淘汰。
3.生成密钥授权对。
客户端创建私钥,并用它生成证书签名请求。这个密钥对生成过程由 ACME 客户端自动处理。妥善保管私钥–它是证书可信度的基础。
4.
根据您的设置,您将完成 HTTP-01 挑战(在网络服务器上托管文件)或 DNS-01 挑战(在 DNS 中添加 TXT 记录)。对于通配符证书,需要 DNS-01。如果客户端有 DNS 提供商的 API 访问权限,它通常会自动处理。
5.用你的私钥签署 nonce。
CA 发送唯一的 nonce,客户端用你的私钥签署。这证明你控制了密钥对,并可防止重放攻击。
6.开始自动签发、更新和撤销证书。
CA 验证您的回复后,就会签发 ACME 证书。客户端安装证书并设置自动更新。从这时起,证书将在后台刷新,无需人工干预。
提示:坚持使用 ACME v2,它是当前的标准,具有更好的安全性和功能。大多数 CA 不再支持 ACME v1。
ACME 与其他注册协议的比较
ACME 并非自动注册证书的唯一协议。还有两个较早的协议–简单证书注册协议(SCEP)和安全传输注册协议(EST),但它们都有局限性。
SCEP可自动进行初始证书签发,在企业环境中广泛用于设备注册。但 SCEP 不能很好地处理撤销或更新,因此需要额外的工具或手动流程来管理整个证书生命周期。这是一种较老的协议,早于现代自动化需求。
EST是一种较新的标准,可以自动注册和更新,但其采用率还没有达到 ACME 的水平。支持 EST 的 CA 和客户端较少,这限制了它在实际部署中的实用性。
ACME脱颖而出的原因是,它在一个协议中管理整个生命周期–签发、更新和撤销。它由社区驱动,在 RFC 8555 中公开记录,并得到众多证书颁发机构和开源工具的支持。对于大多数企业来说,ACME 集自动化、灵活性和生态系统支持于一身,是首选。
最佳做法和考虑因素
- 使用 ACME v2 并与 RFC 8555 保持同步。 ACME v1 已过时。 确保您的客户端和服务器支持 ACME v2,并不断更新您的工具,以便从安全改进和新功能中获益。
- 首选 DNS-01 通配符证书挑战。 如果需要确保域下所有子域的安全,请使用 DNS-01 验证的通配符证书。 HTTP-01 挑战无法证明对所有可能子域的控制,因此 DNS 是唯一的选择。通过让 ACME 客户端 API 访问 DNS 提供商,可以实现自动化。
- 维护一个备份 CA,以提高恢复能力。 CA 灵活性是 ACME 的优势之一。 配置自动化,以便在主 CA 出现故障时切换到辅助 CA。这样即使一个提供商出现问题,也能确保持续签发证书。
- 将 ACME 与证书管理平台集成。 对于规模较大的部署,可将 ACME 自动化连接到 Keyfactor、AppViewX 或 CyberArk 等平台。 这些工具可让您查看所有证书,帮助您执行策略,并使您更容易审计基础设施。
- 确保私钥安全 即使是自动化,安全问题也很重要。 将私钥存储在硬件安全模块(HSM)中,或使用设备验证方法(如苹果公司的 Secure Enclave)来实现高保障环境。SecureW2 的动态 PKI 与云 RADIUS 等工具可帮助将设备身份整合到证书工作流程中。
- 监控证书到期日期。 自动化是可靠的,但并非万无一失。 设置警报,在证书即将到期而未续费时通知您。这将为您提供一个安全网,以防自动化出现问题。
准备好自动化您的证书生命周期了吗?
不用再担心证书过期和手动续费。SSL Dragon提供与 ACME 兼容的 SSL 证书,这些证书来自Sectigo和DigiCert等值得信赖的授权机构,起价仅为 25 美元/年。自动签发、更新和管理证书,无限次重新签发,500,000 美元以上的保修范围,以及 24/7 全天候技术支持。
无论您需要域验证(DV)、组织验证(OV)还是扩展验证(EV)证书,我们的 ACME 解决方案都能与 Certbot、acme.sh 等常用客户端无缝集成。






