读懂 ACME,搞定全站 HTTPS
十年前,给网站配置 HTTPS 是一场噩梦:填写 CSR、验证邮箱、等待人工审核、手动上传证书、配置 Nginx、到期前再重来一遍——整个过程动辄数小时甚至数天,费用动辄数百美元。2015 年,全球超 90% 的网站仍在使用明文 HTTP。转折点出现在 2016 年。Let's Encrypt 正式上线,背后的核心武器正是 ACME(Automated Certificate Management Environment)协议。
一、ACME 是什么?
ACME 是由互联网安全研究组(ISRG)设计的标准化通信协议(RFC 8555),目标只有一个:让服务器自己“说话”,自动完成证书的申请、续订和吊销。
二、ACME 工作流程:四步搞定证书
ACME 的交互基于 JSON 消息,通过 HTTPS 安全传输,核心流程可概括为四个步骤:
第一步:建立通信
客户端(如 Certbot)连接 ACME 服务器(如 Let's Encrypt),获取 API 端点,建立信任通道。
第二步:注册账户
客户端生成密钥对(Account Key),在 CA 注册账户。这把密钥是后续管理证书的身份凭证,务必妥善保管。
第三步:域名验证(核心环节)
CA 要确认你真的是域名主人,于是发起“挑战”(Challenge)。常见三种方式:
- HTTP-01:在 /.well-known/acme-challenge/ 路径下放文件,需开放80端口,不支持通配符
- DNS-01:添加DNS TXT记录,支持通配符,不受端口限制
- TLS-ALPN-01:443端口完成验证,适合80端口被封锁场景
第四步:签发与续期
验证通过后,CA 签发证书。客户端自动写入 Web 服务器配置并重启服务。同时设置定时任务,在到期前 30 天自动续订。
三、ACME 不只是 Let's Encrypt 的专利
虽然 ACME 最初为 Let's Encrypt 设计,但作为开放标准,越来越多的商业 CA也开始支持。企业级用户可将 ACME 账户与现有客户体系绑定,实现权限管控和计费管理。Google 已宣布计划将 TLS 证书最长有效期缩短至 47 天。在短周期时代,手动续期将彻底不可行,ACME 自动化从“可选项”变为“必选项”。