【发布时间】:2011-09-06 21:12:02
【问题描述】:
我有 Thwate 提供的 p7b 文件。当我尝试使用以下命令导出 cer 文件中的证书时,不包括证书链。
请建议如何做同样的事情。导入 weblogic 密钥库需要此 CER。
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
【问题讨论】:
标签: openssl certificate x509certificate
我有 Thwate 提供的 p7b 文件。当我尝试使用以下命令导出 cer 文件中的证书时,不包括证书链。
请建议如何做同样的事情。导入 weblogic 密钥库需要此 CER。
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
【问题讨论】:
标签: openssl certificate x509certificate
如果您将 -chain 添加到命令行,它将导出任何链接的证书。
【讨论】:
唯一的问题是结果文件中的任何其他证书都不会被识别,因为工具不希望每个 PEM/DER 编码文件有多个证书。 甚至 openssl 本身。 试试
openssl x509 -outform DER -in certificate.cer | openssl x509 -inform DER -outform PEM
自己看看吧。
【讨论】:
-print_certs 是用于列出 p7b 文件中所有证书的选项,您可能需要指定正在读取的 p7b 文件的格式。
然后您可以将输出重定向到一个新文件以构建证书的串联列表。
在文本编辑器中打开文件,您将看到 Base64 (PEM) 或二进制数据 (DER)。
openssl pkcs7 -inform DER -outform PEM -in certificate.p7b -print_certs > certificate_bundle.cer
【讨论】:
我在从文件中提取证书时遇到了类似的问题。这可能不是最好的方法,但它对我有用。
openssl pkcs7 -inform DER -print_certs -in <path of the file> | awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
【讨论】:
所选答案对我不起作用,但很接近。我找到了一个对我有用的教程以及我从 StartCom 获得的证书。
更改前导和尾随,使文件看起来像这样:
-----BEGIN PKCS7-----
[... certificate content here ...]
-----END PKCS7-----
例如,我的 StartCom 证书以:
-----BEGIN CERTIFICATE-----
并以:
结尾 -----END CERTIFICATE-----
运行以下 OpenSSL 命令(在撰写本文时适用于 Ubuntu 14.04.4):
openssl pkcs7 -print_certs –in pkcs7.p7b -out pem.cer
输出是带有证书链的 .cer。
参考:http://www.freetutorialssubmit.com/extract-certificates-from-P7B/2206
【讨论】:
keytool 识别证书。非常感谢!