1. 数字证书基础概念
1.1 数字证书的定义
数字证书(Digital Certificate)是由证书颁发机构(CA)签发的电子凭证,用于在网络通信中绑定公钥与实体身份。它解决了“如何信任对方公钥属于对方”这一核心问题,是 PKI(公钥基础设施)体系的信任基石。
核心作用:数字证书相当于网络世界的“身份证”,让通信双方在不预先交换密钥的情况下,通过 CA 的背书建立信任关系。
1.2 证书的组成结构
一张 X.509 v3 数字证书包含以下关键字段:
| 字段 | 说明 | 示例值 |
|---|---|---|
| 版本号 | X.509 版本(v1/v2/v3) | v3 |
| 序列号 | CA 颁发的唯一整数标识 | 0x1A2B3C4D |
| 签名算法 | CA 签发证书时使用的哈希+非对称算法 | sha256WithRSAEncryption |
| 颁发者 | 签发该证书的 CA 名称(DN) | CN=MyCA, O=Example Inc. |
| 有效期 | notBefore ~ notAfter 时间窗口 | 2024-01-01 ~ 2025-01-01 |
| 主体 | 证书持有者的名称(DN) | CN=server.example.com |
| 公钥 | 持有者的公钥算法与密钥数据 | RSA 2048 bits |
| 扩展 | v3 扩展字段(用途、SAN、约束等) | Server Authentication |
| 签名值 | CA 用私钥对上述字段的哈希签名 | 0xE5F6... |
1.3 公钥、私钥与签名算法
证书中的公钥是公开分发的,私钥由持有者秘密保管。两者通过数学算法配对:
- 加密/解密:公钥加密,私钥解密(机密性)。
- 签名/验签:私钥签名,公钥验签(身份认证与完整性)。
常见的签名算法组合:
| 算法组合 | 哈希算法 | 非对称算法 | 典型密钥长度 |
|---|---|---|---|
| RSA | SHA-256 | RSA | 2048 / 4096 |
| ECDSA | SHA-256 | ECDSA (P-256) | 256 bits |
| Ed25519 | SHA-512 | EdDSA | 256 bits |
故障排查要点:证书自动校验失败时,首先检查签名算法是否被客户端支持(如旧系统不支持 SHA-256 以上哈希),以及公钥长度是否满足安全策略(如 RSA 1024 已被多数浏览器拒绝)。
1.4 X.509 标准概述
X.509 是 ITU-T 定义的公钥证书格式标准,当前主流版本为 v3(1996 年扩展)。其核心设计包括:
- 证书路径:从根 CA → 中间 CA → 终端证书的信任链。
- CRL/OCSP:证书吊销状态查询机制。
- 扩展字段:支持自定义用途(如代码签名、TLS 服务器身份、电子邮件保护)。
常见误区:X.509 v3 证书的扩展字段(如 Subject Alternative Name)是 TLS 校验的关键。如果 SAN 缺失或与域名不匹配,即使证书链完整,浏览器也会报“证书名称不匹配”错误。
故障排查关联:证书自动校验失败通常涉及以下环节:
① 公钥与私钥不配对(密钥对生成错误或私钥被替换);
② 签名算法不匹配(CA 签名算法与证书声明算法不一致);
③ 证书链中某张证书的签名值被篡改或 CA 公钥无法验签。
① 公钥与私钥不配对(密钥对生成错误或私钥被替换);
② 签名算法不匹配(CA 签名算法与证书声明算法不一致);
③ 证书链中某张证书的签名值被篡改或 CA 公钥无法验签。