什么是 X.509?
X.509 是 ITU-T 制定的标准,用于公钥基础设施(PKI)与特权管理基础设施(PMI),规定了公钥证书的格式。此类证书广泛用于多种互联网协议,包括用于 HTTPS 的 TLS/SSL(保护网页浏览)、邮件加密(S/MIME)、代码签名以及各类身份认证机制。
X.509 证书将身份(如域名、组织或个人)与公钥绑定,并由受信任的证书颁发机构(CA)以数字签名背书。通信双方据此可验证公钥是否属于声称的主体,这是互联网安全通信的基础之一。
日常接触:浏览器地址栏出现锁形图标、表示 HTTPS 连接时,就在使用 X.509 证书校验站点身份并协商加密。浏览器会检查证书,以降低连接到仿冒站点的风险。
证书结构
X.509 证书包含若干按标准组织的关键部分:
Version(版本)
证书格式版本(v1、v2 或 v3)。现代证书多为 v3,支持扩展字段。
Serial Number(序列号)
CA 分配的唯一编号,用于追踪与吊销。
Signature Algorithm(签名算法)
签署证书所用的算法(如 SHA256-RSA、ECDSA)。
Issuer(颁发者)
签发该证书的 CA 的可分辨名称(DN)。
Validity Period(有效期)
Not Before / Not After,定义证书生效区间。
Subject(主体)
证书持有者 DN(域名、组织或个人等)。
Subject Public Key Info
公钥及算法标识(RSA、ECDSA 等)。
Extensions(v3 扩展)
如 SAN、密钥用法(Key Usage)、扩展密钥用法(EKU)等。
Signature(签名)
CA 对证书内容的数字签名,用于验证真实性。
证书编码格式
X.509 证书可用多种编码表示:
PEM(Privacy-Enhanced Mail)
Base64 文本,外加 BEGIN/END 标记。Web 服务器与应用中最常见。
-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJAKL0UG+mRcSdMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
aWRnaXRzIFB0eSBMdGQwHhcNMTcwODIyMDUwNTI5WhcNMTgwODIyMDUwNTI5WjBF
...
-----END CERTIFICATE-----
DER(Distinguished Encoding Rules)
二进制格式。常见于 Java 部分场景及某些 Windows 环境。
PKCS#7 / P7B
可包含多条证书(证书链),用于分发。
PKCS#12 / PFX
二进制容器,可同时存放证书与私钥,常带口令保护。
格式转换:CyberChef 可解析 PEM 或 DER。若为其他容器格式,可能需先用其他 Operation 转换,例如对 PEM 文本使用 From Base64,或直接输入 DER 二进制。
在 CyberChef 中使用 Parse X.509 Certificate
Parse X.509 Certificate 会把证书字段提取并以人类可读形式展示,便于检查证书、排查 SSL/TLS 问题、安全审计与理解属性。
解析步骤:
- 取得证书(文件、站点导出等)
- 粘贴到 CyberChef 的 Input(PEM 或 DER)
- 添加 Parse X.509 certificate Operation
- 在 Output 查看解析结果
- 重点查看有效期、Subject、扩展等字段
常见用途
1. 核对证书信息
部署到服务器前,确认域名、有效期、颁发者等是否符合预期。
2. 排查 SSL/TLS 故障
站点报证书错误时,解析证书以判断是否过期、域名不匹配或颁发者不受信任等。
3. 安全审计
检查弱算法(MD5、SHA1)、过短密钥(RSA 小于 2048 位)或扩展配置不当等问题。
4. 续期管理
查看多张证书的到期时间,规划续期,避免服务中断。
5. 理解证书链
解析中间证书与根证书,理解从终端实体证书到受信任根的链路。
6. 合规核对
对照组织或监管要求(密钥长度、有效期、允许的 CA 等)。
重要字段说明
Subject Alternative Names(SAN)
现代证书常用 SAN 列出所有适用域名;一张证书可覆盖多个域名与子域。
Subject Alternative Names:
DNS: example.com
DNS: www.example.com
DNS: mail.example.com
DNS: *.api.example.com
Key Usage(密钥用法)
限定公钥可用于:
- Digital Signature:数据签名
- Key Encipherment:密钥加密(如密钥交换场景)
- Certificate Signing:签发下级证书(CA 证书)
- CRL Signing:签署证书吊销列表(CRL)
Extended Key Usage(扩展密钥用法)
进一步限制用途,例如:
- TLS Web Server Authentication:HTTPS 服务器
- TLS Web Client Authentication:客户端证书
- Code Signing:代码签名
- Email Protection:S/MIME 邮件保护
Authority Information Access(AIA)
给出可获取上级证书、OCSP 响应者等的 URL,用于校验路径与在线吊销状态。
CRL Distribution Points
可下载 CRL 的地址,用于检查证书是否已被吊销。
如何取得待分析证书
从网站(浏览器)
- 点击地址栏锁形或站点信息图标
- 选择「证书」或「查看证书」等项
- 导出或复制为 PEM
- 粘贴到 CyberChef 解析
使用 OpenSSL 命令行
# 从站点获取证书
openssl s_client -connect example.com:443 -showcerts
# 仅提取证书(PEM)
openssl s_client -connect example.com:443 2>/dev/null | \
openssl x509 -outform PEM
# 查看详情(与 CyberChef 互为补充)
openssl x509 -in certificate.pem -text -noout
从文件
若已有 .crt、.cer、.pem 等,直接读取内容粘贴即可。
校验与信任
信任链
X.509 通常呈层级结构:
- 根 CA:自签名,由操作系统/浏览器预置信任
- 中间 CA:由根签发,再签发终端实体证书
- 终端实体证书:面向网站或服务的实体证书
典型校验项
验证时会检查例如:
- 当前时间是否在有效期内
- 签名是否可由受信任 CA 验证
- 是否能构造到受信任根的完整链
- 是否未吊销(CRL / OCSP)
- 访问域名是否与 Subject / SAN 匹配
- 用途是否符合 Key Usage / EKU
安全提示:在 CyberChef 中「解析」只展示内容,并不等同于「信任」。结构合法仍可能是不可信 CA 签发、已过期或已吊销。必须通过完整校验流程判断可信度。
常见问题一览
| 问题 |
说明 |
如何识别 |
| 已过期 |
当前时间晚于 Not After |
查看解析结果中的有效期 |
| 尚未生效 |
当前时间早于 Not Before |
查看有效期起始时间 |
| 域名不匹配 |
证书签发给其他域名 |
查看 Subject CN 与 SAN |
| 自签名 |
Issuer 与 Subject 相同 |
对比颁发者与主体 DN |
| 弱签名算法 |
使用 MD5、SHA1 等过时算法 |
查看 Signature Algorithm |
| 密钥过短 |
RSA 长度不足 2048 位 |
查看公钥位数 |
| 缺少 SAN |
无 Subject Alternative Name 扩展 |
查看扩展列表 |
扩展字段进阶
Critical 与 Non-Critical
扩展可标为关键(critical)或非关键。若实现无法理解某关键扩展,应拒绝该证书;非关键扩展可被忽略。
常见扩展
- Subject Alternative Name(SAN):额外身份(域名、IP、邮箱等)
- Basic Constraints:标明 CA 与路径长度限制
- Name Constraints:限制下级 CA 可签发的名称范围
- Policy Constraints:策略相关约束
- Subject Key Identifier:公钥标识
- Authority Key Identifier:上级公钥标识
- Certificate Policies:策略 OID
CyberChef Recipe 思路
与证书解析相关的组合示例:
- 站点证书: HTTP Request(获取证书)→ Parse X.509 certificate
- 从证书包提取: Regular Expression → Parse X.509 certificate
- DER 处理: From Base64 → To Hex → Parse X.509(视实际数据而定)
- 批量: Split → Parse X.509 certificate
- 字段提取: Parse X.509 → Regular Expression
- 到期关注: Parse X.509 → Extract dates → Compare
实践建议
部署证书
- 尽量使用受信任 CA 签发的证书
- RSA 使用 2048 位及以上(或 ECDSA 256 位等相当强度)
- 在 SAN 中列齐所需域名
- 合理设置有效期(常见如 90 天~1 年,视 CA 与策略而定)
- 正确配置 Key Usage / EKU
- 提供 OCSP / CRL 信息以便吊销检查
分析证书
- 生产上线前复核证书内容
- 关注到期日并做续期提醒
- 定期审计算法与密钥长度
- 确保证书链完整
- 确认 SAN 覆盖全部业务域名
- 记录序列号等便于追踪
自动化:许多组织会自动化监控到期与弱配置。CyberChef 适合人工核对、培训与临时排障,可与专业 PKI/监控流程配合使用。
← 返回操作指南