返回博客
HTTP-01DNS-01DNS 委派

申请 SSL 证书时,HTTP-01、DNS-01 和 DNS 委派到底有啥区别?

申请 SSL 证书时选验证方式有点懵?用最直白的方式讲清楚 HTTP-01、DNS-01 和 DNS 委派三者的区别,以及什么场景该选哪个。

2026-04-218 分钟
对比 HTTP-01、DNS-01 和 DNS 委派三种证书验证方式的插画

第一次申请 SSL 证书的人几乎都会卡在这一步——选验证方式。界面上摆着 HTTP-01、DNS-01,有时还有个 DNS 委派,三个选项,点哪个?

先说"验证"是在验什么

申请 SSL 证书,本质上是在跟一个叫 CA(证书颁发机构) 的机构说:"这个域名是我的,给我发张证书。"

但 CA 不认识你,它需要你证明你确实控制这个域名。验证方式说白了就是:CA 出一道"作业题",你去完成它,CA 看到你完成了,就相信你是这个域名的主人。

HTTP-01 和 DNS-01 是两种不同的"出题方式",DNS 委派则是一种"做题辅助方案"。下面一个一个说。

HTTP-01:在网站上放一个文件

原理

CA 说:"你在 http://你的域名/.well-known/acme-challenge/ 这个路径下放一个特定内容的文件,我去访问,访问到了就算验证通过。"

你按要求放好文件,CA 去 HTTP 请求这个 URL,拿到正确内容,验证完成,证书签发。

优点

  • 操作直观,只要能控制网站根目录,放个文件就行
  • 不需要动 DNS,对 DNS 权限没有要求

限制

  • 你的服务器必须公网可访问,而且 CA 固定从 80 端口发起请求
  • 不支持通配符证书(即 *.example.com),每个域名都要单独放验证文件
  • 国内申请时可能受网络影响,因为主流 CA 的验证请求大多从境外发起,特别是政务云等特殊网络环境下,HTTP 请求可能不稳定,导致验证失败

适合谁

部署在公网服务器上的网站,不需要通配符证书,没有 DNS 管理权限的。

DNS-01:在 DNS 里加一条记录

原理

CA 说:"你在你的域名下加一条 TXT 记录,内容是我给你的这串随机值,我去查 DNS,查到了就算验证通过。"

你去域名的 DNS 管理后台(比如阿里云、Cloudflare、腾讯云),手动加一条:

_acme-challenge.你的域名.  TXT  "CA给你的那串随机值"

CA 查到这条记录,验证通过。加完记录想确认 CA 能不能查到,可以用 DNS 验证记录与 CAA 检查 在几个公共 DNS 上同时查一下。

优点

  • 服务器不需要公网访问,内网服务器也能用
  • 支持通配符证书,这是 HTTP-01 做不到的
  • 添加 DNS 解析即可,一般对网络环境和技术要求更低,验证更稳定

限制

  • 需要有 DNS 管理权限

适合谁

需要通配符证书的、服务器在内网的、或者不想开 80 端口的场景。

对比一下

HTTP-01DNS-01
操作位置在服务器上放文件在 DNS 后台加解析记录
服务器需要公网必须不需要
支持通配符证书❌✅
受网络环境影响较大,特别是国内访问境外 CA 时较小,DNS 解析相对稳定
配置难度单台服务器很简单;多台服务器、有 CDN 或强制跳转时容易出问题手动加一条记录即可;自动续期需要 DNS 服务商提供 API

DNS 委派:DNS-01 的进阶用法

说完了两种验证方式,再来说 DNS 委派——这不是第三种验证方式,它是基于 DNS-01 的一个优化方案。

DNS-01 验证本身不复杂,但如果你想让证书自动续期,就必须让工具能在每次续期时自动写入新的 TXT 记录——也就是说,工具需要能调用你 DNS 服务商的 API。

这里有两个现实问题

  1. 不是所有 DNS 服务商都支持 API。很多域名托管在一些小众或者老牌的服务商,根本没有 API 可以调用,只能手动登录后台改记录——每次续期都得手动操作一次(90 天的证书通常 60 天左右就要续,以后有效期还会继续缩短),繁琐且容易忘。

  2. 就算有 API,主域的权限也太重。你的主域名 DNS 管着整个网站的解析,把 API Key 交给证书工具,意味着这个工具理论上可以改动你所有的 DNS 记录——权限太大,一旦 Key 泄漏或者工具出问题,整个域名的解析都可能被波及。

DNS 委派就是为了同时解决这两个问题而出现的。

DNS 委派怎么解决这个问题

DNS-01 验证固定查询这个名字:

_acme-challenge.example.com

你在主域的 DNS 里给它加一条 CNAME,指向另一个专门用于验证的 DNS Zone,比如放在一个独立的、权限受控的 DNS 服务上:

_acme-challenge.example.com.  CNAME  f3a9c1d2.acme-validation.example.net.

之后,所有的 ACME TXT 记录都去那个专用 Zone 里写。CA 查询时,会跟着 CNAME 走,最终找到正确的 TXT 记录,验证通过。

好处是什么

  • 主域的 DNS 只需要加一次 CNAME,以后都不用动——无论证书续期多少次
  • 证书工具拿到的只是那个专用小 Zone 的 API Key,碰不到主域的其他解析记录
  • 主域 DNS 用什么服务商都行,哪怕完全不支持 API 也没关系——验证这边单独用一个支持 API 的服务来处理

需要注意的是,委派缩小的是 DNS 写权限,不是证书签发风险:谁能控制这个验证 Zone,谁就能为你的域名通过验证、申请证书。所以验证 Zone 的凭证仍然要妥善保管。

LapseZero 就支持 DNS 委派:在主域加一次 CNAME,之后每次续期都能自动完成验证。

适合谁

  • 想实现证书自动续期,但主域 DNS 服务商不提供 API 的
  • 有 API 但不想把主域的完整 DNS 权限暴露给证书工具的
  • 需要统一管理多个域名续期的

选哪个?

这三者并不是互斥的,根据你当前的现实情况:

  • 要通配符证书 → 必须 DNS-01 或 DNS 委派
  • 有 DNS 管理权限 → 优先 DNS-01 更简单更稳定
  • 想自动续期,但主域 DNS 没有 API 或不想交出主域 DNS 权限 → DNS 委派,只需在主域加一次 CNAME
  • 没有 DNS 管理权限 → 只能 HTTP-01,但要注意网络环境和服务器配置可能带来的验证问题

理解了背后的原理,选起来就不纠结了。

如果你还在纠结证书该不该花钱,可以看看另一篇免费 vs 付费 SSL 证书,里面讲了两者在验证级别、信任背书和服务支持上的区别。

用 LapseZero 免费申请、续期和监控 SSL 证书
LapseZero 支持免费申请单域名和通配符 SSL 证书,并提供证书自动续期、自动部署和到期监控提醒,适合个人开发者、中小团队和多子域名项目。
开始使用 LapseZero