返回博客
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 权限没有要求

限制

  • 你的服务器必须公网可访问
  • 只能验证单个域名,不能用于通配符证书(即 *.example.com
  • 国内申请时可能受网络影响,因为CA大都是境外的,特别是政务云等特殊网络环境下,HTTP 请求可能不稳定,导致验证失败

适合谁

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

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

原理

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

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

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

CA 查到这条记录,验证通过。

优点

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

限制

  • 需要有 DNS 管理权限

适合谁

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

对比一下

HTTP-01DNS-01
操作位置在服务器上放文件在 DNS 后台加解析记录
服务器需要公网必须不需要
支持通配符证书
受网络环境影响较大,特别是国内访问境外 CA 时较小,DNS 解析相对稳定
技术难度较高,需要配置服务器、开放端口、处理跳转等较低,只需修改 DNS 记录

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

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

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

这里有两个现实问题

  1. 不是所有 DNS 服务商都支持 API。很多域名托管在一些小众或者老牌的服务商,根本没有 API 可以调用,只能手动登录后台改记录——证书 90 天一到期,就得手动操作一次,繁琐且容易忘。

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

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

DNS 委派怎么解决这个问题

你新建一个专门用来做 ACME 验证的子域,比如:

_acme-challenge.example.com

然后在主域的 DNS 里加一条 CNAME,让这个地址指向另一个专用的 DNS Zone,比如放在一个独立的、权限受控的 DNS 服务上:

_acme-challenge.example.com.  CNAME  _acme-challenge.example.com.acme-dns.io

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

好处是什么

  • 主域的 DNS 只需要加一次 CNAME,以后都不用动——无论证书续期多少次
  • 证书工具拿到的只是那个专用小 Zone 的 API Key,权限极小,就算泄漏了,影响范围也仅限于这个验证用的子域
  • 主域 DNS 用什么服务商都行,哪怕完全不支持 API 也没关系——验证这边单独用一个支持 API 的服务来处理

一个典型的使用场景 就是 CertFlow,它就支持 DNS 委派,配置一次就可以实现证书的自动续订。

适合谁

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

选哪个?

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

  • 要通配符证书 → 必须 DNS-01 或 DNS 委派
  • 有 DNS 管理权限 → 优先 DNS-01 更简单更稳定
  • 没有 DNS 管理权限 → 只能 HTTP-01,但要注意网络环境和服务器配置可能带来的验证问题

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

如果你还想了解更多关于 SSL 证书的选购和部署建议,可以看看我们之前写的免费 vs 付费 SSL 证书那篇文章,里面有更详细的对比分析和实操建议。

如果你想申请免费的证书,还想要自动续期、自动部署、临期告警等功能,CertFlow 可以帮你搞定一切证书管理的烦恼,快去试试吧!

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