什么是SSL证书文件验证?
SSL证书文件验证,也叫 **HTTP验证(HTTP DCV)**,是SSL证书申请过程中用于确认域名所有权的一种方式。
它的原理很简单:CA机构会生成一个指定名称的验证文件,申请人需要将该文件上传到网站服务器指定目录:
/.well-known/pki-validation/
CA随后访问该URL,检查文件内容是否匹配。
如果验证成功,CA即可确认申请人拥有该域名控制权限,并继续签发SSL证书。
文件验证的优点:
- 操作简单;
- 不需要修改DNS解析;
- 验证速度快;
- 适合拥有服务器管理权限的网站。
但它也有明显限制:
- 必须能够访问网站服务器;
- 必须开放HTTP/HTTPS访问;
- 不适合无法控制Web服务器的场景。
文件验证的原理
CA 机构生成一个指定名称的验证文件,申请人把文件上传到网站服务器的指定目录 .well-known/pki-validation/,CA 随后访问该 URL,检查文件内容是否匹配。验证成功,CA 确认申请人拥有该域名控制权限,继续签发证书。
文件验证的优点:操作简单、不需要修改 DNS 解析、验证速度快、适合拥有服务器管理权限的网站。限制也明确:必须能访问网站服务器、必须开放 HTTP/HTTPS 访问、不适合无法控制 Web 服务器的场景。域名所有权验证在整个证书申请里的位置,可以参考证书申请时的域名验证机制。
文件验证和 DNS 验证的区别
SSL 证书常见的域名验证方式有三种:
| 验证方式 | 原理 | 适用场景 |
|---|---|---|
| 文件验证(HTTP-01) | 上传指定文件到网站目录 | 有服务器权限的网站 |
| DNS 验证(DNS-01) | 添加 TXT/CNAME 记录 | CDN、多服务器、通配符证书 |
| 邮箱验证 | 点击 CA 发送的验证邮件 | 无法修改 DNS 但有指定邮箱 |
文件验证依赖 Web 服务器,DNS 验证依赖域名解析控制权。网站部署在单台服务器,文件验证更方便;使用 CDN 或多节点架构,推荐 DNS 验证;申请通配符证书,必须用 DNS 验证——按 CA/Browser Forum 规范,通配符证书不能使用 HTTP 文件验证,只能通过 DNS 验证或邮件验证完成域名控制确认,这是通配符证书的申请限制。
文件验证操作流程
操作分三步:
- 申请证书并选择文件验证。申请时选择 HTTP File Verification(HTTP 验证),CA 会生成验证文件名称、文件内容和指定上传路径,文件名形如 1234567890ABCDEF.txt。
- 创建验证目录并上传文件。把文件放到网站根目录的 .well-known/pki-validation/ 下,完整路径类似 https://example.com/.well-known/pki-validation/1234567890ABCDEF.txt。文件名不能修改、文件内容不能修改、不要上传到其他目录。
- 检查文件是否可以访问。上传后用浏览器访问 https://example.com/.well-known/pki-validation/文件名.txt,正常情况下直接显示文本内容。出现 403 Forbidden、404 Not Found、自动跳转或空白页面,说明服务器配置可能有问题,用验证文件公网访问检测从公网侧核对更准确。
文件验证失败的常见原因
四类原因覆盖了绝大多数失败场景。
路径错误是最常见的。错误写法 example.com/pki-validation/test.txt,正确写法 example.com/.well-known/pki-validation/test.txt——.well-known 前面包含一个英文句点,漏掉这个点,CA 就找不到文件。
网站安全规则拦截。宝塔安全防护、WordPress 安全插件、Nginx 禁止访问隐藏目录、WAF 规则阻断 CA 请求,都可能导致 .well-known/ 目录无法公网访问。解决方法是检查服务器配置,确保该目录允许公网访问。
CDN 缓存导致验证失败。网站接入 Cloudflare、阿里云 CDN、腾讯云 CDN 时,第一次访问文件不存在,CDN 缓存了 404 结果,之后即使文件已上传,CA 访问时也可能继续拿到错误页面。解决方法是清理 CDN 缓存,或设置规则让 .well-known/* 不参与缓存。
HTTPS 跳转导致验证异常。网站设置了 HTTP 强制跳转 HTTPS,如果 HTTPS 配置异常,CA 访问验证文件时可能失败。确认 http://example.com/.well-known/pki-validation/test.txt 和 https://example.com/.well-known/pki-validation/test.txt 都能正常访问。持续无法解决的验证失败,排查方向参考验证环节报错的排查思路。
Nginx 如何允许文件验证
如果 Nginx 配置限制了隐藏目录访问,比如:
location ~ /\. {
deny all;
}
这条规则会让 .well-known/ 无法访问,需要增加例外:
location ^~ /.well-known/pki-validation/ {
allow all;
}
修改后重新加载 Nginx 配置即可。
文件验证适合哪些证书
文件验证适合单域名 SSL 证书、普通 DV 证书、有网站服务器权限的项目;不适合通配符证书、多服务器部署环境、无法控制 Web 服务器的域名。
需要长期自动续期的场景,建议优先选 DNS 验证——不依赖 Web 服务器和站点可访问性,续期链路更稳定,相关机制可以看证书自动续期的验证方式。
文件验证常见问题解答
SSL 证书文件验证需要上传到哪个目录?
上传到 .well-known/pki-validation/ 目录下,CA 会访问该路径验证文件内容。
文件已经上传,为什么还是验证失败?
常见原因:文件路径错误、文件内容被修改、网站防火墙拦截、CDN 缓存旧内容、HTTP 无法正常访问。按上面四类逐项排查。
通配符 SSL 证书可以使用文件验证吗?
不可以。按 CA/Browser Forum 规范,通配符证书必须通过 DNS 验证方式完成域名控制验证。
文件验证和 DNS 验证哪个更好?
没有绝对优劣。单服务器网站用文件验证更简单;企业、多服务器、CDN 环境更推荐 DNS 验证,后续续期维护更方便。
文件验证通过 HTTP-01 挑战让 CA 直接读取站点目录下的校验文件,本质是利用 Web 服务的公开可达性完成域名控制权确认。它依赖站点可访问、路径准确、无中间层干扰:.well-known 路径、文件名和内容、CDN 缓存、HTTP/HTTPS 跳转、安全规则拦截都是常见失败点。单服务器 DV 证书用文件验证最快;通配符和多节点架构按规范走 DNS 验证,长期自动续期场景也以 DNS 验证更省事。



京公网安备11010502031690号
网站经营企业工商营业执照
















