证书颁发机构与信任链
了解根 CA、中间 CA,以及浏览器如何验证证书
证书颁发机构与信任链 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。
欢迎
证书颁发机构是互联网的信任锚点。本课将追踪根 CA、中间 CA 和叶证书如何构成信任链。
根 CA
根 CA 是自签名的:Issuer == Subject。根 CA 私钥会离线保存在多个安全设施中的 HSM 内。主要浏览器信任的根 CA 约有 150 个。
根 CA 信任存储
浏览器和 OS 都维护受信任根 CA 证书列表。Chrome 使用 Google 的根存储。Firefox 使用自己的根存储。macOS/Windows 使用 OS 信任存储。Mozilla 的根存储经过公开审计。
中间 CA
根 CA 为中间 CA 证书签名。中间 CA 执行实际的证书签名工作。这样可以让根 CA 私钥保持离线。即使中间 CA 被攻破,也不会暴露根 CA。
证书链
叶证书(your.domain.com)
→ 由中间 CA 签名
→ 由根 CA 签名
→ 自签名(信任锚点)
浏览器会沿着证书链逐一验证每个签名,直到受信任的根 CA。
链验证算法
1. 使用中间 CA 的公钥检查叶证书签名。
2. 使用根 CA 的公钥检查中间证书签名。
3. 检查根 CA 是否位于信任存储中。
4. 检查有效期。
5. 检查撤销状态。
域名验证(DV)与 OV、EV
DV:CA 只验证域名控制权(自动完成)。OV:验证组织身份(人工审核)。EV:增强验证,以前会在浏览器地址栏显示公司名称。Let's Encrypt 仅签发 DV 证书。
Let's Encrypt ACME 协议
ACME 可自动完成 DV 证书签发:
1. 客户端请求某个域名的证书。
2. CA 发出挑战(HTTP-01:在 /.well-known/ 下提供令牌)。
3. 客户端证明自己拥有控制权。
4. CA 签名并返回有效期 90 天的证书。
证书固定
应用会固定特定证书或公钥的哈希值。如果服务器提供了不同的证书(即使该证书由 CA 签名),连接也会失败。该机制可以防止 CA 被攻破后的攻击,但会使证书轮换变得困难。
CA 被攻破:DigiNotar 2011
DigiNotar 遭到攻破,为 Google.com 签发了欺诈性证书。伊朗利用这些证书对用户实施中间人攻击。DigiNotar 随后被从信任存储中移除,并立即停止运营。
证书透明度(CT)
CT 日志是所有已签发证书的公开、只追加式默克尔树。CA 必须在签发证书前将其提交到日志中。浏览器要求提供 SCT(证明证书已被 CT 日志收录)。这使人们能够检测出错误签发的证书。
快速检查
根 CA 为什么使用中间 CA,而不是直接为叶证书签名?
回顾
CA 信任链现在已经清晰了!接下来我们将学习如何通过 CRL 和 OCSP 撤销遭到攻破的证书。
常见问题解答
「证书颁发机构与信任链」课时是免费的吗?
是的 — 「证书颁发机构与信任链」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。
「证书颁发机构与信任链」这节课中我会学到什么?
了解根 CA、中间 CA,以及浏览器如何验证证书 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cryptology Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「证书颁发机构与信任链」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cryptology Academy 课中编写并运行代码吗?
能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。