Appearance
为什么必须域名验证
域名验证是 CA 在签发证书前确认"申请人确实控制这个域名"的过程。 没有这一步,任何人都能给别人的域名申请证书,HTTPS 的信任基础就不存在了。
为什么需要域名验证
证书的作用是把公钥和域名绑定起来,并由 CA 签名担保。浏览器看到证书时,只会判断"这是某个受信任 CA 签发给这个域名的证书",不会再回头核实申请人的身份。
如果 CA 不验证就签发,攻击者可以:
- 为
bank.example申请一张证书; - 把流量劫持到自己的服务器;
- 浏览器看到证书由受信任 CA 签发、域名匹配,不会报警。
所以行业规则要求 CA 必须先验证域名控制权,才能签发。 CA/B 论坛基线要求(BR)第 3.2.2 节把这件事定为强制步骤,各家 CA 都必须执行。
需要区分两个概念:
| 概念 | 含义 |
|---|---|
| 域名控制权 | 能在该域名下发布内容、修改 DNS 记录,或接收该域名的管理邮件 |
| 域名所有权 | 法律意义上的归属,通常以注册商 WHOIS 记录为准 |
证书验证的是控制权,不是所有权。 网站代运营方、CDN 服务商在获得授权后同样可以完成验证。
验证结果也不是永久的。BR 规定验证信息有复用期限,到期后必须重新验证,这也是证书有效期缩短后需要更频繁操作的原因。
什么是多视角验证
多视角验证(MPIC,Multi-Perspective Issuance Corroboration)是 CA 从多个不同网络位置重复检查验证结果,确认它们看到的内容一致。
BR 的定义是:
由主网络视角完成域名验证和 CAA 检查后,在签发证书前,由其他网络视角对这些判断进行佐证的流程。
单点验证为什么不够
CA 通过网络查询或访问域名完成验证,不同网络位置可能得到不同结果。
攻击者可以操纵路由,让 CA 的验证请求在途中被引导到自己的服务器:
这类攻击称为同前缀 BGP 劫持。验证节点恰好落在被劫持的前缀里时,它看到的是攻击者的内容,验证会错误通过。
多视角怎么防
CA 先由主网络视角完成验证,再由多个远端视角独立复查。只有足够多的视角都看到相同的验证值,才允许签发。
BR 第 3.2.2.9 节规定了分阶段要求:
| 生效日期 | 最少远端视角 | 附加要求 |
|---|---|---|
| 2025-03-15 | 2 个 | 允许一定数量的不一致 |
| 2025-09-15 | 2 个 | 必须满足法定票数,否则不得签发 |
| 2026-03-15 | 3 个 | 需覆盖至少 2 个不同 RIR 服务区 |
| 2026-06-15 | 4 个 | 需覆盖至少 2 个不同 RIR 服务区 |
| 2026-12-15 | 5 个 | 需覆盖至少 2 个不同 RIR 服务区 |
对申请人的实际影响是:只要有一个地区的验证节点访问不到你的验证文件或 DNS 记录,验证就可能失败。 政企、高校等限制境外访问的环境尤其容易出现这种情况,排查方法见 MPIC 多视角域名验证排障。
