服务器验证(HTTP 文件验证 / HTTP-01) VS DNS 解析验证(DNS-01)
两者目的一样 :向 CA 证明你拥有这个域名控制权,只是验证的途径不一样,只用于 DV 域名验证,OV/EV 是人工资料审核,不走这两种。
一、服务器验证(HTTP 文件验证)
原理 :CA 给你一串随机 token,你下载一个文本文件,上传到网站根目录的 /.well-known/acme-challenge/ 路径;CA 通过公网 80 端口 HTTP 访问这个文件,文件内容匹配就验证通过,出证。
✅ 优点
- 操作简单,不需要登录域名解析后台,只要能操作网站服务器 / 面板即可
- 没有 DNS 缓存等待,上传文件成功后,CA 马上探测,验证速度很快
- 不用改动域名解析记录,不影响现有 DNS 配置
❌ 缺点(卡点很多)
- 必须开放公网 80 端口,且不能有防火墙、CDN 拦截这个目录;很多云服务商 / 家用宽带封 80,直接失败
- 网站必须已经上线、公网可访问;网站还没上线、内网服务器、只开 443 的环境不能用
- 不支持通配符证书
*.shturl.,只能单个域名 - 多服务器负载均衡场景:所有节点都要放这个验证文件,否则 CA 随机访问某一台会验证失败
二、DNS 解析验证(TXT 记录验证 / DNS-01)
原理 :CA 给一段随机字符串,你去域名 DNS 后台,添加一条_acme-challenge.域名的TXT 解析记录 ;CA 直接查询全球 DNS 服务器,查到这条 TXT 记录就验证成功,完全不碰你的 Web 服务器Let's Encr...。
✅ 优点
- 不需要网站上线、不需要开放 80 端口。内网、预发布、CDN 站点、负载均衡都能用
- 支持通配符证书
*.shturl.,一次性覆盖所有一级子域名,这个是 HTTP 验证做不到的 - 不依赖服务器状态,服务器关机也能完成证书申请
- 多服务器集群不用同步文件,只改 DNS 一条记录即可
❌ 缺点
- 需要域名 DNS 管理权限,要登录解析后台新增 TXT 记录
- 存在DNS 全球传播 TTL 缓存,新增记录后可能要等几分钟甚至几十分钟才能全网生效,偶尔会延迟出证
- 如果 DNS 服务商不支持 API,自动化续证书麻烦(手动每次都要加删 TXT 记录)
快速选型对照表
表格
| 项目 | HTTP 服务器文件验证 | DNS TXT 解析验证 |
|---|---|---|
| 依赖对象 | Web 服务器 + 公网 80 端口 | 域名 DNS 解析服务 |
| 是否要 DNS 权限 | 不需要 | 需要 |
| 网站未上线可用? | ❌ 不行 | ✅ 可以 |
| 通配符证书 | ❌ 不支持 | ✅ 支持 |
| 等待延迟 | 基本无,上传完即可 | 存在 DNS 传播等待 |
| 适合场景 | 单域名、网站已上线、80 端口畅通 | 通配符、CDN、内网、80 被封、多子域名 |
业务选型建议(JoySSL 这边客户最常用)
- 单域名官网,服务器 80 端口正常开放、网站已经上线 → 优先 HTTP 文件验证,更快
- 要通配符证书、用 CDN、80 端口被封、站点还没上线、内网服务 → 直接 DNS 验证
补充小坑提醒:
- HTTP 验证:CDN 会缓存验证文件,要记得把
/.well-known/acme-challenge/路径跳过 CDN 回源,不然验证失败- DNS 验证:添加 TXT 记录后,可以用在线 DNS 查询工具,确认全球解析生效再点重新验证,减少反复重试