证书解码
Certificate Decoder
解析 PEM 或 DER 格式的证书和 CSR,显示主体、SAN、有效期、密钥用途和证书链线索。
解码一张 X.509 证书——一个 PEM 块、一个 `.crt`/`.cer` 文件,或整条证书链——显示主体、签发者、有效期、密钥、指纹,以及真正决定浏览器接不接受它的那些扩展。
证书是在这个标签页里,由本页自己的 ASN.1 读取器解码的。什么都不上传,这正是重点:一份 CSR、一个内部 CA,或者手滑粘进来的一把密钥,都不该被送到陌生人的服务器上去读。
把证书、证书束、CSR 或公钥拖进来
PEM 或 DER——.pem、.crt、.cer、.der、.csr,或者 authorized_keys 里的一行。也可以粘到下面。
这个工具不做的事
- 它不核验签名。上面的“颁发者”是名字对上了,不是证据——自己造的证书里,颁发者名字想写谁就写谁。
- 它不知道你信任哪些机构。那份名单在你的操作系统和浏览器里,网页读不到。
- 它不查吊销。OCSP 和 CRL 的地址都列出来了,方便你自己去查,但去问它们是一次网络请求,这个工具刻意不发。
要知道一台在线的服务器实际在发什么——链的顺序、协议版本、到期时间——就得连上它:SSL 检查工具就是回答这个问题的工具。
怎么用
粘贴 PEM 或拖入文件
一个 `-----BEGIN CERTIFICATE-----` 块,一条链就是几个,或者 DER 字节。解析在这个标签页里进行。
检查日期和名字
有效期按你的时钟算。要紧的名字在 Subject Alternative Name 扩展里,不在 Common Name——2017 年起就没有浏览器看 CN 了。
比对指纹
SHA-256 指纹是固定配置或电话那头的同事会念给你的东西。它是对整张证书算的,所以任何改动都会产生不同的指纹。
常见问题
它会检查证书是否受信任吗?
不会。它读的是证书对自己的陈述。信任意味着链到一个你的系统已经有的根,加上吊销检查,加上和你连接的主机做名字匹配——这些没有一样是解码器自己能做的。
浏览器说名字不匹配,但 CN 看起来是对的。
因为从 2017 年 Chrome 58 起,主机名匹配就忽略 Common Name 了。主机名必须在 Subject Alternative Name 扩展里;只有 CN 的证书在所有现代环境里都会失败。
把证书粘到这里安全吗?
证书在设计上就是公开的——它是服务器交给每个连上来的客户端的东西。私钥不是,而这个页面用不着私钥。如果一个 PEM 块写着 `PRIVATE KEY`,它根本不该出现在任何网页里。
可以从这些接进来
JWKS 签名验证
JWKS Verifier
拉取 JWKS 端点,按 kid 选出对应的密钥,验证令牌的签名和标准声明。
密钥对生成
Key Pair Generator
生成 RSA、ECDSA 或 Ed25519 密钥对,导出为 PEM、JWK 或 OpenSSH。
SSH 密钥生成
SSH Key Generator
生成带注释的 OpenSSH 密钥对,并显示指纹。私钥不带口令导出,需要的话用 ssh-keygen -p 自己加。
SSL 证书检测
SSL Certificate Checker
连上主机,展示它下发的证书链、到期时间、协议和加密套件支持情况,并指出证书链里缺失的环节。
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
CSR 证书请求生成
CSR Generator
按主体字段和 SAN 条目生成证书签名请求以及配套的私钥。
密钥对生成
Key Pair Generator
生成 RSA、ECDSA 或 Ed25519 密钥对,导出为 PEM、JWK 或 OpenSSH。
密钥库分析
Keystore Inspector
打开 PKCS#12、JKS 或 PEM 包,列出里面的证书、证书链和密钥算法。
SSL 证书检测
SSL Certificate Checker
连上主机,展示它下发的证书链、到期时间、协议和加密套件支持情况,并指出证书链里缺失的环节。
JSON ⇄ CSV 互转
JSON ⇄ CSV
把嵌套 JSON 按点路径列名拍平成列,或者从表格重新拼回对象。
JSON 对比
JSON Diff
按结构比较两份 JSON,忽略键的顺序,报出新增、删除和改动的路径。