如何将 Chrome 的 CRL 集(或某些主 CRL 列表)用作 CRL 文件?

如何将 Chrome 的 CRL 集(或某些主 CRL 列表)用作 CRL 文件?

我正在寻找主 CRL 列表。我找到的最接近的列表是 Chromium 项目的证书颁发机构列表。 我用了crlset 工具获取 crlset(crlset fetch > crl-set),然后转储序列号(crlset dump crl-set),所以我看到类似这样的内容:

f24196ae94078667348f02e8e37458a3a6e6aad1e0b0dc610118cce721427bfc
  03fb3b4d35074e
  03fbf94a0e6c39
  04097214d6c97c
  0442c6b3face55
  ....

我希望能够将包含所有不良序列号主列表的 CRL 文件传递​​给 openssl 或 curl(使用 openssl)。例如,我希望传递所有内容,而不仅仅是传递 verisign 的 crl。我以为我可以使用 crlset 来做到这一点,但我认为格式不兼容。我试过了,openssl crl -inform DER -text -in crl-set但它显示:

unable to load CRL
5532:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:
1319:
5532:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:ta
sn_dec.c:381:Type=X509_CRL

如果有人对如何实现我所说的内容有任何想法,或者有任何创造性的方法,请告诉我。谢谢

答案1

这也许是不可能的,至少以您所希望的形式是不可能实现的。

考虑到 Chrome 的 CRLset 中,可能存在多个被撤销的证书多种的CA。包含以下证书的单个 CRL 文件:多种的CA 被称为“间接 CRL”。间接 CRL 的支持较差;请参阅这里这里;OpenSSL 可能无法做到这一点。

此外,正如@bentek 提到的,CRLsets 格式似乎不兼容。具体来说,CRLsets 格式不包含所有必要的 CRL 字段;请参阅RFC 5280,第 5.1 节。CRLsets 包含(根据其文档)颁发证书的主体公钥信息的 SHA-256 哈希值,以及该颁发证书的已撤销证书的证书序列号。没有足够的信息来重建直接的CRL(IE遗憾的是,如果我们想这样做的话,每个 CA 只能有一个 CRL 文件。在我看来,最大的缺失/遗漏是姓名(DN)是被吊销证书的颁发者的证书。CRLsets 为我们提供了一个“指纹”(SHA-256 SPKI 哈希值),但考虑到互联网的范围,将该指纹映射到相关证书的 DN 并非易事。

相关内容