本文主要是介绍什么是自动证书管理环境(ACME),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
组织的网站需要 24x7 全天候可用,以建立信任并提供信息,如果网站因证书过期而停机,那么很难恢复失去的客户信任、收入和品牌声誉,手动管理证书基础结构会使组织面临中断、中间人 (MITM) 攻击等的严重风险。
自动证书管理环境 (ACME) 是一种通信协议,无需任何人工干预即可自动颁发、安装、续订和吊销 PKI 证书,ACME 自动执行证书颁发机构 (CA) 与托管 PKI 证书的 Web 服务器或设备之间的交互。
ACME最初由互联网安全研究小组专门为自己的证书服务Let’s Encrypt创建,用于颁发域验证(DV)SSL / TLS证书。现在,多个 CA 越来越多地采用 ACME 协议来颁发不同类型的证书,例如扩展验证 (EV) 和组织验证 (OV)。
使用 ACME 协议的优势
- 无许可费;开源工具
- 需要最少的集成时间;易于设置和使用
- 为组织节省时间、成本和劳动密集型手动工作
- 防止由于中断而导致的MITM攻击和安全风险
- 直接联系 CA,消除冗长的等待队列
- 无需人工干预
- 由开源社区持续增强
- 敏捷且可扩展
- 快速将受损证书替换为新证书
- 灾难发生时轻松切换到其他 CA
ACME 协议如何工作
ACME 遵循客户端-服务器架构,其中它们使用 JSON 消息通过加密的 HTTPS 连接安全地相互通信。
- 客户:ACME 客户端(也称为 ACME 代理)在需要部署 PKI 证书的任何 Web 服务器或计算机上运行,它代表安装它的 Web 服务器发送证书颁发、续订和吊销请求。
- 服务器:ACME 服务器在 CA 上运行,例如 Let’s Encrypt 或 Sectigo,并响应 ACME 客户端发出的请求。
如何设置 ACME 客户端-服务器体系结构
与任何客户端-服务器体系结构一样,ACME 服务器响应并执行 ACME 客户端发出的证书请求(颁发、续订、吊销),用户开始使用的第一步是选择需要安装的客户端。
尽管有大量可用的客户端,但建议开始使用 Certbot,这是一个易于使用且适用于许多操作系统的 ACME 客户端。这是一个免费的开源工具,每 60 天续订一次证书。
在自动化 PKI 证书管理之前,必须彻底设置客户端和服务器,由于 ACME 服务器仅接受来自授权客户端的请求,因此必须确保客户端经过身份验证才能发出请求。因此,为了证明其真实性,ACME 客户端需要完成 ACME 服务器提出的挑战。
ACME挑战
有两种类型的ACME挑战:HTTP和DNS。它们可以在不到 15 秒的时间内快速完成。
- HTTP:当 ACME 客户端向 CA(ACME 服务器)发送请求时,CA 会发回要安装在客户端上的令牌。客户端使用该令牌创建一个文件,并在该文件后附加授权密钥的指纹。安装文件后,客户端会通知 CA。ACME 服务器检索并验证文件,从而完成质询。
- 域名解析:DNS 质询与 HTTP 质询类似,但需要额外的验证因素。除了使用令牌安装文件外,ACME 客户端还需要在 DNS 空间的 TXT 记录中放置一个给定值。质询完成后,服务器将执行 DNS 查找并检索 TXT 记录。
配置 ACME 客户端
选择 ACME 客户端后,下一步是在需要由 PKI 证书保护的服务器或计算机上对其进行配置。概述如下:
- 确定域后,从支持 ACME 的 CA 列表中选择所需的 CA。
- ACME 客户端联系 CA(ACME 服务器)并生成授权密钥对。
- CA 为客户端发出质询(HTTP 或 DNS)以验证其身份,它还发送一个随机数(随机生成的数字)。
- 客户端使用其生成的私钥对随机数进行签名。
- 验证域的所有权,并完成客户端-服务器设置。
- 配置 ACME 客户端应联系 CA 以续订证书的频率。
- ACME 客户端可以代表域执行自动证书颁发、续订和吊销。
ACME 客户端如何请求证书颁发和续订
- ACME 客户端为域生成证书签名请求 (CSR)。
- ACME 客户端对 CSR 和用自己的私钥生成的公钥进行签名。
- CA 在验证签名后颁发所需的证书。
- ACME 客户端在域服务器上安装证书。
ACME 客户端如何请求证书吊销
- ACME 客户端发送使用其私钥签名的撤销请求。
- CA 验证签名并吊销证书。
- CA 将信息发送到标准吊销通道,以便浏览器不接受吊销的证书。
使用 Key Manager Plus 进行自动化证书生命周期管理,Key Manager Plus 使用自动证书管理环境 (ACME) 协议直接与第三方 CA 集成,例如 Let’s Encrypt、Bypass Go SSL 和 ZeroSSL。
这篇关于什么是自动证书管理环境(ACME)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!