证书解码器
解码 PEM 格式的 X.509 SSL/TLS 证书。所有处理在浏览器中完成。
如何使用证书解码器
粘贴证书
粘贴 PEM 格式的证书,包含 BEGIN/END 标记。
解码
工具将解析证书的各个字段。
查看信息
查看证书的主题、颁发者、有效期和扩展信息。
什么是 X.509 证书?
X.509 证书是一种数字证书标准,用于 TLS/SSL 加密通信中验证服务器身份。证书包含公钥、持有者信息和数字签名。
SSL/TLS 证书
X.509 证书是 HTTPS 的基础,验证服务器身份并实现加密通信
公钥基础设施
X.509 定义了 PKI 中使用的公钥证书格式,将身份与加密密钥绑定
ASN.1/DER 编码
证书使用 ASN.1 区分编码规则 (DER) 作为二进制结构,并封装为 PEM Base64 用于文本传输
PEM、DER、CRT、PFX —— 证书格式对比
同一份 X.509 证书可以存成多种文件格式。弄清手头是哪种能省不少时间——下面是区分方法:
| 格式 | 扩展名 | 编码方式 | 典型用途 |
|---|---|---|---|
| PEM | .pem, .crt, .cer | 带 BEGIN/END 头的 Base64 ASCII 文本 | Web 服务器(Nginx、Apache)和大多数 Linux 工具——本工具解码的格式 |
| DER | .der, .cer | 原始二进制 ASN.1 | Java 密钥库、部分 Windows 和嵌入式工具 |
| P7B / PKCS#7 | .p7b, .p7c | Base64 ASCII,仅含证书(不含私钥) | Windows 证书链导入、IIS |
| PFX / PKCS#12 | .pfx, .p12 | 二进制,带密码保护,可包含私钥 | Windows 导入/导出、IIS、代码签名打包 |
快速判断:用文本编辑器打开文件,看到 -----BEGIN CERTIFICATE----- 就是 PEM;如果是一堆二进制乱码,则是 DER 或 PFX。
常用 OpenSSL 命令
更喜欢命令行?这些 OpenSSL 命令可以实现本工具的功能——解码、查看有效期、计算证书指纹:
openssl x509 -in cert.pem -text -noout
解码并显示证书的全部字段
openssl x509 -in cert.pem -noout -dates
只显示有效期(notBefore / notAfter)
openssl x509 -in cert.pem -noout -fingerprint -sha256
打印 SHA-256 指纹
openssl x509 -in cert.der -inform DER -text -noout
解码二进制 DER 证书
openssl x509 -in cert.pem -noout -subject -issuer
只显示 Subject 和 Issuer
openssl s_client -connect example.com:443 -showcerts
从线上服务器抓取证书链
证书字段参考
每个解码字段的含义及其重要性:
Subject(使用者)
证书颁发给的实体身份。常见组成:CN(通用名称)、O(组织)、C(国家)。
Issuer(颁发者)
签署该证书的证书颁发机构(CA)。若 Subject 与 Issuer 相同,则该证书是自签名证书。
Serial Number(序列号)
由颁发 CA 分配的唯一编号,用于检查吊销状态(CRL / OCSP)。
Validity(有效期:Not Before / Not After)
证书有效的时间窗口。超出该窗口,浏览器和客户端会拒绝它。
Public Key & Key Size(公钥与密钥长度)
与身份绑定的公钥。当前规范是 2048 位 RSA 或 256 位 EC;1024 位 RSA 已弃用。
Subject Alternative Names(SAN,使用者可选名称)
证书覆盖的主机名和 IP 列表。自 2015 年起浏览器按 SAN 而非 CN 匹配——example.com 的证书必须显式列出 www.example.com,否则校验不通过。
Signature Algorithm(签名算法)
CA 签署证书所用算法。要求 SHA-256 及以上;现代浏览器拒绝 SHA-1 签名。
Fingerprint(SHA-256 指纹)
整份 DER 编码证书的哈希值,用于证书固定(pinning)和跨系统比对证书。
常见问题
在浏览器中点击地址栏的锁图标,可以查看和导出网站的 SSL 证书。
PEM 格式以 -----BEGIN CERTIFICATE----- 开头,以 -----END CERTIFICATE----- 结尾,中间是 Base64 编码的数据。
目前只支持解码单个证书。对于证书链,请分别解码每个证书。
PEM 是带 BEGIN/END 头的 Base64 文本(扩展名 .pem、.crt、.cer)。DER 是同样数据的原始二进制 ASN.1 形式。CRT 和 CER 只是扩展名,内容既可以是 PEM 也可以是 DER。PFX/PKCS#12 是带密码保护的二进制打包,可包含私钥,主要用于 Windows。
解码和校验是两回事。证书可以完美解析,但校验失败的原因可能是:已过期、主机名不在 SAN 列表中、证书链不通向受信任的根 CA、或已被吊销。本工具展示解码后的字段——建议先检查有效期和 SAN。
安全。SSL 证书是公开信息——每个访问你网站的人都会收到它,其中不含任何机密。但切勿在任何地方粘贴私钥:本工具不需要也无法使用私钥。
服务器下发的证书链应包含叶子证书,以及将其连接到受信任根证书的中间 CA——通常总共 2-3 张证书。根证书本身不应被发送:客户端的信任库中已经持有根证书。缺少中间证书是“浏览器中正常、移动端却失败”这类 TLS 错误最常见的原因,因为有些客户端会缓存或猜测中间证书,而另一些则不会。
解码证书并查看有效期块:notBefore 是签发日期,notAfter 是到期日期——请在 notAfter 之前至少 30 天安排续期。SAN(Subject Alternative Names,主题备用名称)列出了证书覆盖的每一个主机名;即使 CN 匹配,该列表中缺失的名称仍会在浏览器中引发证书名称错误。本工具可就地解码并显示这两个字段。