1. 前言
在 HTTPS/TLS 体系中,我们常听到 CA、根证书、中间证书 等概念。它们既相关又容易混淆。本文用一张思维导图式的结构,帮你一次性厘清:
CA(Certificate Authority)= 实体/机构
CA 证书(CA Certificate)= 证明该机构身份 & 公钥的数字证书
2. CA 与 CA 证书的区别
概念角色本质示例CA证书颁发机构运营主体(公司/组织)DigiCert、GoDaddy、Let’s EncryptCA 证书CA 身份与公钥的“身份证”X.509 证书文件(.crt/.cer)DigiCert Global Root G2.crtCA = 发证人;CA 证书 = 发证人的身份证一个 CA 可持有多张 CA 证书(不同算法、用途或级别)
3. 根 CA 与根 CA 证书
名称关键特征典型文件根 CA(Root CA)位于信任链最顶端,私钥离线存储,极少使用—根 CA 证书自签名(Issuer = Subject),CA = TRUE,被系统预装信任Go Daddy Root Certificate Authority ‑ G2.crt公开:根 CA 证书(含公钥)必须公开,才能让所有终端验证。私钥保密:根 CA 的私钥仅在签发中间 CA 时使用,通常在硬件安全模块(HSM)里离线操作。
4. 中间 CA 与中间 CA 证书
名称关键特征作用中间 CA由根 CA 签发、受根 CA 控制的次级机构承担日常为客户签发服务器证书中间 CA 证书Issuer = 根 CA,CA = TRUE,但 pathLenConstraint ≥ 0把根的信任“向下批发”一条链可以有多级中间 CA;常见做法是一层或两层。中间 CA 失窃或被吊销时,只需更新这一级而无需更换全平台根证书。
5. 根 / 中间 / 服务器证书的信任链
Root CA 证书 ← 自签名
│ 签发
Intermediate CA 证书
│ 再签发
Server / Leaf 证书(example.com)
终端(iOS / Android / 浏览器)验证流程:
服务器发来 Server 证书 + 中间证书链终端拼接本地根 → 比对签名 → 直到找到 Root CA 证书根证书在系统信任库中 ⇒ 整条链可信
6. 为什么要分层?
目标分层带来的好处安全根私钥离线 → 攻击面极小;中间私钥如泄露,仅吊销该链即可运维中间 CA 有有效期(1‑5 年)可轮换;根 CA 一般 20‑30 年不动合规不同业务线、算法 (RSA/ECC) 可用不同中间 CA 管理
7. 证书固定(Pinning)的层级选择
固定层级优点风险适用场景根 CA实现最省事同根可伪造、根变动全 App 崩不推荐中间 CA(专属)安全 & 轮换成本低需要自建或购买专属链企业级服务器公钥 (SPKI)攻击面最小证书续期需同密钥或双 Pin云证书、大多数应用
8. 总结速查表
术语自签名CA = TRUE预装系统主要职责根 CA 证书✓✓✓信任锚中间 CA 证书✗✓✗日常签发服务器证书✗✗✗证明网站身份
一句话记忆
CA 是人,CA 证书是人的身份证;根 CA 是“老祖宗”,中间 CA 是“管家”,服务器证书才是我们每天握手的“当事人”。
Last
阅读完本文,希望你已能清晰区分“机构”与“证书”的概念,并了解 TLS 信任链为何要采用层级设计。下一步,你可以动手在 iOS 中实现“中间 CA / 服务器公钥”级别的证书固定,为 App 提升安全防护。