什么是 CA?什么是 CA 证书?——一篇彻底搞懂 TLS 信任链

什么是 CA?什么是 CA 证书?——一篇彻底搞懂 TLS 信任链

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 提升安全防护。

相关推荐