piapia123
zh

证书解析

编码

所有处理都在浏览器本地完成,数据不上传服务器

输入
把文件拖到这里可直接载入
输出

把 `.crt` / `.pem` 的内容粘进来,读出版本、序列号、主体、签发者、有效期、公钥、SAN、密钥用法、签名算法与 SHA-256 / SHA-1 指纹。PEM、裸 base64、十六进制三种写法都收。 ⚠️ 只读不验。 这是用这个工具之前必须知道的一条:一张证书「能解析」与「可信」是两件完全不同的事,而一个把字段漂亮列出来的界面很容易让人以为后者也完成了。 信任链验证需要拿到签发者的证书、逐级向上直到一个受信任的根、检查基本约束与密钥用法是否允许它签这张、检查吊销状态(要联网)、检查主机名是否匹配。这些东西浏览器只在 TLS 握手里做(而且用的是它自己的根证书库),网页里做不到。 所以这里给出的是事实:证书里写了什么。它是不是可信,要靠别的手段判断。 ⚠️ 唯一做的一项验证是自签名检查 —— 拿主体与签发者比。两者不同不代表有问题:绝大多数证书都是别人签的,那才是常态。 ⚠️ 过期与「还没生效」永远都报,不受选项影响 —— 那是这张证书最要紧的一件事。全部在浏览器本地完成。

功能

  • ⚠️ 「只读不验」的说明放在结果最前面,不藏进 FAQ
  • 版本、序列号(可能超过 2⁵³,所以按字符串给)、签名算法
  • 主体与签发者的全部属性(CN / O / OU / C / ST / L / emailAddress 等)
  • 有效期与剩余天数;⚠️ 已过期或还没生效时明确报出来
  • 结果最前面是一条三级结论横幅:有效(带剩余天数)/ 已过期 / 尚未生效 —— 一眼看到答案,不用从十几行明细里找
  • 公钥算法与位数(RSA 从 modulus 算出来,EC 由曲线定),以及曲线名
  • SAN 逐条列出,DNS / IP / email / URI 分开标;⚠️ IP 按四段写出来,不当文本读
  • 密钥用法与扩展密钥用法,逐位解释
  • 基本约束:是不是 CA 证书、pathLenConstraint
  • SHA-256 与 SHA-1 指纹(十六进制、冒号分隔)
  • PEM、裸 base64、十六进制三种输入都认
  • ⚠️ `.cer` / `.der` 这类二进制证书文件可以直接拖进来 —— 外壳会把它转成十六进制再解析(这类文件是 DER 编码的二进制,没法粘贴)
  • 全部在浏览器本地完成,证书不上传

使用方法

  1. 把证书内容整段粘进去(`-----BEGIN CERTIFICATE-----` 那一段),或把 `.cer` / `.der` 文件拖进来
  2. 结果按分组列出:概要 → 主体 → 签发者 → 有效期 → 公钥 → SAN → 密钥用法 → 签名 → 指纹
  3. 先看最上面那条「只读不验」的说明,再按字段核对

常见问题

它验证了这张证书可信吗?
没有,而且做不到。 信任链验证要:拿到签发者的证书、逐级向上追到一个受信任的根、检查每一级的基本约束与密钥用法是否允许它签下一级、检查吊销状态(CRL 或 OCSP,都要联网)、再用主机名去匹配 SAN。浏览器只在 TLS 握手里做这些,用的是它自己的根证书库 —— 一个网页既没有那份根证书库,也没有吊销列表。所以这里给的是证书里写了什么,是不是可信要靠别的手段判断。上一轮功能里那个自签名证书生成器也是同理:它生成的证书没有任何浏览器会信任。
「自签名:否」是不是说明证书有问题?
不是。绝大多数证书都是别人签的(CA 签的),所以「否」是完全正常的。这一项只是拿主体与签发者比了一下 —— 相同说明它是自己签自己(自签名证书,常见于本地开发与内部测试),不同说明上面还有一层。它和「可信」没有关系:一张自签名的证书可以是你自己装进信任库的,一张 CA 签的证书也可能是过期的或者给别的域名的。
为什么过期的证书还让我解析?
因为「这张证书里写了什么」和「它现在还能不能用」是两个问题,而前者在后者之外还有用途:查签发者是谁、看它当初覆盖了哪些域名、核对指纹、排查一张旧证书是不是当年那张。解析本身不会因为过期而失去意义。不过结果里会明确标出已经过期多少天 —— 那是这张证书最要紧的一件事,不该让人自己从两个日期去算。
指纹是干什么用的?
它是整张证书的哈希,用来核对这是不是同一张证书。比如服务器上装的证书与本地这份是不是同一张、下载来的证书有没有被改过。SHA-256 是现在用的那个(`openssl x509 -fingerprint -sha256`),SHA-1 也给是因为不少旧文档和管理界面还在印它 —— 但 SHA-1 已经不该用于任何安全判断了。
为什么我的证书里没有 SAN?
那多半是一张很老的证书。Chrome 从 58 起完全忽略 CN,只看 subjectAltName,所以现在签发的证书都会带 SAN(哪怕只有一个域名,也会把 CN 重复写进去)。一张只有 CN 没有 SAN 的证书在现代浏览器里连不上,而报错只说「名称不匹配」,让人以为是别的问题。如果这是你自己签的,重新签一张带 SAN 的。

相关工具