CRL 解码器 (X.509)
解析 X.509 证书吊销列表,DER 和 PEM 都可以,并显示客户端会看到的内容。概览给出版本、签名算法、CRL 编号、thisUpdate 到 nextUpdate 的区间、列表是否仍然有效,以及它是完整列表还是只包含自某个基准 CRL 以来变化的增量列表。下面是签发者名称、把列表绑定到某个 CA 密钥的颁发机构密钥标识符,以及规定这份列表能为哪些证书发言的签发分发点。每条吊销记录都列出序列号、吊销时间、CA 记录的原因,以及更值得注意的失效起始时间:revocationDate 是 CA 采取行动的时刻,invalidityDate 是认为密钥已泄露的时刻,两者之间就是不应信任签名的那段窗口。粘贴签发 CA 的证书后,会用 WebCrypto 以其公钥校验列表签名,支持 RSA 和 ECDSA;如果提供的证书其密钥根本不可能产生这个签名,会报告为不匹配,而不是说无法校验。两点提醒:序列号出现在这里只有在这份列表确实对应那张证书时才有意义,而这由签发者和分发点决定;另外,非常大的 CRL(有的多达几十万条)会完整计数,但只绘制前五百行,因为把其余的画出来只会让标签页卡死,并不会多告诉你什么。
使用方法
- 把 .crl 文件拖到方框里,或粘贴 PEM 列表。.crl 是原始 DER,文本编辑器打不开。
- 先看有效区间:过了 nextUpdate 的列表已经陈旧,多数客户端会拒绝它,而不是转而信任一切。
- 查看 CRL 编号和范围。增量 CRL 只列出自它标明的基准编号以来的变化,单独看并不完整。
- 在表格里找你的序列号,并读旁边的原因:certificateHold 是可以解除的暂停,其余都是永久的。
- 如果列表来自你不能完全掌控的地方,粘贴签发 CA 证书来校验签名。
常见问题
- 吊销时间和失效起始时间有什么区别?
- 吊销时间是 CA 公布这件事的时刻;失效起始时间是可选的条目扩展,指证书实际上不再可信的时刻,通常就是密钥泄露的时候。两者可能相隔很远,因为泄露往往在发生数天后才被发现。判断一份旧签名时这很关键:在失效起始时间之前做出的签名可能仍可接受,之后的则不行,尽管两者都早于吊销本身。
- 列表显示 certificateHold,这张证书到底吊销了没有?
- 是暂停而不是吊销。certificateHold 是唯一可以撤销的原因码:后续的 CRL 可以用 removeFromCRL 原因再次列出同一序列号,从而解除暂停,让证书重新可用。正因如此,客户端不能像对待 keyCompromise 那样把暂停当作永久状态缓存。实际上公共 CA 几乎不用它,看到它通常意味着私有或企业 PKI。
- 什么是增量 CRL,可以单独使用吗?
- 不可以。增量只列出自其 Delta CRL Indicator 扩展所指的某个基准 CRL 以来的变化,设计上要叠加在那个基准之上使用。它之所以存在,是因为大型 CA 的完整列表可能非常庞大,而只有少数证书变动时每小时重新下载全量太浪费。如果本工具显示为增量,你看到的条目是近期变化,而不是被吊销序列号的全集。
- 序列号不在列表里,是不是就说明证书没问题?
- 只有当这是正确的列表、它仍然有效,并且该证书确实由这个 CA 签发时才成立。CRL 只对一个确定的范围发言:签发者名称,以及存在时的签发分发点,限定了它覆盖哪些证书。某个序列号不在一个无关 CA 的列表里,什么也说明不了。它还必须是新鲜的:过期的列表可能只是早于你要找的那次吊销,这正是客户端拒绝陈旧列表而不是照读不误的原因。
- 签名是怎么校验的,失败意味着什么?
- 用你粘贴的证书中的公钥,按列表声明的算法(RSA PKCS#1 v1.5 或 ECDSA),通过浏览器的 WebCrypto 校验列表的被签名部分。通过意味着那把 CA 密钥确实签署了这些字节,且内容未被改动。失败则意味着列表被修改过,或者你提供的证书不是签发者;如果它的密钥类型根本无法产生这个签名,会报告为不匹配,而不是不支持的算法。
- 文件会被上传到什么地方吗?
- 不会。列表和你粘贴的任何证书都在页面内读取和解析,签名校验也运行在浏览器自带的 WebCrypto 上。没有任何内容发往服务器,也不存在可以接收它的服务端组件。吊销列表是公开信息,但私有 PKI 的未必如此,这正是全部处理都放在客户端的原因。
相关工具
SSL 证书解码器(X.509 / PEM)
粘贴 PEM 证书即可读取:主体、颁发者、有效期、SAN、密钥、指纹和扩展,全部在浏览器中完成。
CSR 解码器 (PKCS#10)
在提交证书签名请求之前读懂它:主体、SAN、密钥长度、签名算法,以及自签名能否通过校验。
OCSP 响应与请求解码器
在浏览器中解析 OCSP 响应与请求:状态、响应方、时效、nonce、吊销原因,以及随附的证书。
PKCS#12 密钥库检查器
在浏览器里打开 .p12 / .pfx:输入密码前先看 MAC 和加密算法,输入后查看证书链、私钥,以及私钥与证书是否匹配。
端口号参考
约 60 个标准 TCP / UDP 端口号的可搜索速查表 — 从 22 (SSH)、80 (HTTP) 到 6379 (Redis)、27017 (MongoDB)。
NumPy .npy / .npz 检查器
在浏览器里读取 .npy、.npz 的文件头:dtype、shape、字节序、字段布局和前若干个值,无需 NumPy,也不上传文件。