浏览器如何“选取”或“信任” CA 机构
这其实是一个叫做 “根证书信任计划(Root Program)” 的机制。
浏览器厂商(或操作系统)会维护一份 受信任根证书列表,里面包含几十到上百个“根 CA 公钥”。
比如:
- Chrome / Edge:使用 Chrome Root Store(CRS)
- Firefox:有自己的 Mozilla Root Store
- Safari(macOS/iOS):用 Apple Root Store
- Windows 系统:使用 Microsoft Trusted Root Program
- Android:Google 管理的 Android Root Store
当你访问一个网站时,浏览器会:
- 查看该网站的 HTTPS 证书是谁签的;
- 沿着“签发链”往上找,一直到根 CA;
- 检查该根 CA 是否在本地“受信任根证书”列表中;
- 如果在,就显示 🔒;如果不在,就警告“证书不受信任”。
新的 CA 能加入这个体系吗?
可以 ,但非常严格。
要想成为一个受浏览器信任的根 CA,需要:
1、技术条件
- 拥有安全的 CA 基础设施(HSM、密钥管理、物理安全等)
- 使用国际标准算法(RSA 2048+ / ECC P-256 等)
- 实施严格的审计、事件响应和吊销机制
2、审计与合规
- 必须通过独立第三方审计(WebTrust 或 ETSI EN 319 411)
- 每年重新审计、提交合规报告
3、提交申请
- 向各大 Root Program 分别提交申请(Mozilla、Microsoft、Apple、Google)
- 每个项目有独立审核委员会,公开讨论和投票
例如 Mozilla 的公开流程在这里:
🔗 https://wiki.mozilla.org/CA/Application_Process
4、社区公示期
- 申请过程是公开的(有邮件列表讨论);
- 社区成员(安全专家、浏览器厂商、其他 CA)可以质询和投票;
- 如果无异议且符合标准,才会被加入根存储。
这个过程通常要 1~2年 才能完成,所以成为一个受信任 CA 非常不容易。