跳到正文

证书解码

Certificate Decoder

解析 PEM 或 DER 格式的证书和 CSR,显示主体、SAN、有效期、密钥用途和证书链线索。

解码一张 X.509 证书——一个 PEM 块、一个 `.crt`/`.cer` 文件,或整条证书链——显示主体、签发者、有效期、密钥、指纹,以及真正决定浏览器接不接受它的那些扩展。

🔒 完全在你的浏览器里运行certificatex509tlsdecode

证书是在这个标签页里,由本页自己的 ASN.1 读取器解码的。什么都不上传,这正是重点:一份 CSR、一个内部 CA,或者手滑粘进来的一把密钥,都不该被送到陌生人的服务器上去读。

把证书、证书束、CSR 或公钥拖进来

PEM 或 DER——.pem、.crt、.cer、.der、.csr,或者 authorized_keys 里的一行。也可以粘到下面。

这个工具不做的事

  • 它不核验签名。上面的“颁发者”是名字对上了,不是证据——自己造的证书里,颁发者名字想写谁就写谁。
  • 它不知道你信任哪些机构。那份名单在你的操作系统和浏览器里,网页读不到。
  • 它不查吊销。OCSP 和 CRL 的地址都列出来了,方便你自己去查,但去问它们是一次网络请求,这个工具刻意不发。

要知道一台在线的服务器实际在发什么——链的顺序、协议版本、到期时间——就得连上它:SSL 检查工具就是回答这个问题的工具。

怎么用

  1. 粘贴 PEM 或拖入文件

    一个 `-----BEGIN CERTIFICATE-----` 块,一条链就是几个,或者 DER 字节。解析在这个标签页里进行。

  2. 检查日期和名字

    有效期按你的时钟算。要紧的名字在 Subject Alternative Name 扩展里,不在 Common Name——2017 年起就没有浏览器看 CN 了。

  3. 比对指纹

    SHA-256 指纹是固定配置或电话那头的同事会念给你的东西。它是对整张证书算的,所以任何改动都会产生不同的指纹。

常见问题

它会检查证书是否受信任吗?

不会。它读的是证书对自己的陈述。信任意味着链到一个你的系统已经有的根,加上吊销检查,加上和你连接的主机做名字匹配——这些没有一样是解码器自己能做的。

浏览器说名字不匹配,但 CN 看起来是对的。

因为从 2017 年 Chrome 58 起,主机名匹配就忽略 Common Name 了。主机名必须在 Subject Alternative Name 扩展里;只有 CN 的证书在所有现代环境里都会失败。

把证书粘到这里安全吗?

证书在设计上就是公开的——它是服务器交给每个连上来的客户端的东西。私钥不是,而这个页面用不着私钥。如果一个 PEM 块写着 `PRIVATE KEY`,它根本不该出现在任何网页里。

可以从这些接进来

接下来

这些工具吃得下当前工具的产出,结果可以直接送过去。