问:我们如何找出可以从 P7S 文件生成的 CRL 文件的数量或 PEM 文件的数量?
我(从这里)了解到,P7S 文件中包含的数据只不过是 PEM 文件的编码(ASN1,DER 格式)数据。
因此,如果有一个以(ASN1、DER 格式)编码的 P7S 文件,我使用一些 OpenSSL 命令来获取 ASN1PARSE 数据,并从中获取 CRL,最后得到 PEM。
我知道 ASN1PARSE 与 OpenSSL 一起使用时会给出一些文本文件,其中包含一些偏移量、标题长度和长度,通过使用我们提取上述 CRL(S) 和 PEM(S)。
现在我的问题是,如帖子第一行所述,我怎么知道我正在从 P7S 文件生成正确数量的文件(crls、pems)?
现在在Cryptographic Message Syntax (RFC 5652)中定义的 PKCS#7 文件可以保存许多证书和许多 CRL。
使用 OpenSSL 提取它们的正常方法是使用:
或者,如果输入文件是 DER:
该
man
页面指出:asn1parse
除非您正在调试或贪吃惩罚,否则无需解析它们。以上输出包含所有证书和 CRL 的单个文件。如果您想要单个文件,您应该能够通过管道输出输出
awk
,类似于:这将简单地为每个具有数字文件名的对象创建一个文件。它不区分证书和 CRL。如果需要,您可以修改搜索字符串,使其查找
BEGIN CERTIFICATE
,END CERTIFICATE
或BEGIN X509 CRL
,END X509 CRL
并将"file-"
和/或更改".pem"
为适合每种情况的内容。如果您想在 Python 中执行此操作,请使用该
asn1crypto
模块: