根证书、中间证书、域名证书、key之间
| 组件 | 说明 | 是否公开 | 存放位置 |
|---|---|---|---|
| 根证书(Root CA) | 信任锚点,自签名,由操作系统/浏览器预置 | ✅ 公开 | 客户端(用户设备) |
| 中间证书(Intermediate CA) | 由根证书签发,用于签发最终用户证书 | ✅ 公开 | 服务器(需随域名证书一起发送) |
| 域名证书(服务器证书) | 绑定具体域名(如 www.example.com),由中间 CA 签发 | ✅ 公开 | 服务器 |
| 私钥(Private Key) | 与域名证书配对,用于解密和签名 | ❌ 绝对保密 | 服务器(严格保护) |
🔐 关键原则:
- 证书 = 公钥 + 身份信息 + 上级 CA 签名
- 私钥 = 与证书中的公钥配对,用于 TLS 握手时的解密/签名
域名证书到根证书
当客户端(如浏览器)访问一个 HTTPS 网站时,会验证如下信任链:
text
编辑
[浏览器信任的根证书]
↑(信任)
[SHECA Root CA] ←(签发)←
↑
[SHECA OV Server CA G5] ←(签发)←
↑
[www.example.com] ←(你的域名证书)
验证过程:
- 浏览器收到服务器发来的 域名证书 + 中间证书。
- 用中间证书的公钥验证域名证书的签名。
- 用本地已信任的 根证书 验证中间证书的签名。
- 若整条链验证通过,且域名匹配、未过期、未吊销 → 连接安全,显示锁图标。
⚠️ 如果服务器未发送中间证书,浏览器无法连接到根证书 → 报错 “此网站的证书链不完整” 或 “NET::ERR_CERT_AUTHORITY_INVALID”。
图解关系
text
编辑
[客户端(浏览器)]
│
│ 信任内置
▼
SHECA Root CA(根证书) ←(签发)←
│
▼
SHECA OV Server CA G5(中间证书) ←(签发)←
│
▼
www.example.com(域名证书)
│
│ 配对使用
▼
example.com.key(私钥)
其他
1. 信任来源
- 根证书:被操作系统(Windows/macOS/Linux)和浏览器(Chrome/Firefox/Safari)预置在“受信任的根证书存储”中。一旦被信任,其签发的所有下级证书自动获得信任。
- 中间证书:不预装在系统中,必须由网站服务器在 TLS 握手时主动发送,否则客户端无法构建完整信任链,导致“证书不被信任”错误。
2. 安全性设计
-
根证书:
- 私钥严格离线保管(通常存放在硬件安全模块 HSM 中,物理隔离)。
- 几乎从不直接签发用户证书,以降低泄露风险。
-
中间证书:
- 私钥在线使用,用于日常签发服务器证书。
- 若被泄露,可单独吊销,不影响根证书和其他中间证书。
3. 有效期
- 根证书:有效期很长,通常 15–25 年(例如 SHECA 根证书可能到 2030 年后)。
- 中间证书:有效期较短,通常 3–5 年(如 SHECA OV Server CA G5 有效期约为 2020–2028 年左右,具体以实际为准)。
4. 部署位置
- 根证书:存在于客户端(用户电脑/手机的系统或浏览器中)。
- 中间证书:必须部署在服务器端,与网站 SSL 证书一起配置(如 Apache 的
SSLCertificateChainFile或 Nginx 的ssl_trusted_certificate)。
5. 如何识别
-
查看证书的 “颁发者”(Issuer) 和 “使用者”(Subject) 字段:
- 如果两者相同 → 是根证书(自签名)。
- 如果两者不同 → 是中间证书或服务器证书。
-
在浏览器中查看证书路径(Certification Path),最顶层是根证书,中间层是中间证书。