将包含所有证书链的P7b文件导出到CER文件中

Kun*_*Jha 33 openssl certificate x509certificate

我有Thwate提供的p7b文件.当我尝试使用以下命令导出cer文件中的证书时,不包括证书链.
请建议如何做同样的事情.导入到weblogic密钥库时需要此CER.

openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
Run Code Online (Sandbox Code Playgroud)

bca*_*oll 51

-print_certs是要用于列出p7b文件中所有证书的选项,您可能需要指定要读取的p7b文件的格式.

然后,您可以将输出重定向到新文件以构建连接的证书列表.

在文本编辑器中打开文件,您将看到Base64(PEM)或二进制数据(DER).

openssl pkcs7 -inform DER -outform PEM -in certificate.p7b -print_certs > certificate_bundle.cer
Run Code Online (Sandbox Code Playgroud)

http://www.openssl.org/docs/apps/pkcs7.html

  • 只是为了澄清如何告诉 p7b 文件的格式,当您在文本编辑器中打开文件时,如果您看到“-----BEGIN CERTIFICATE-----”和“-----END CERTIFICATE- ----" 嵌入在乱码中的字符串,很可能是 Base64 (PEM) 格式。否则,如果它是 100% 乱码,则很可能是二进制 (DER) 格式。我从这个链接得到了这个信息:https://knowledge.digicert.com/solution/SO26449.html (2认同)
  • openssl pkcs7 -inform DER -outform PEM -incertificate.p7b -print_certs -out certificat_bundle.cer 也应该工作。它使用 openssl 本身的选项。 (2认同)

小智 6

选定的答案对我不起作用,但它很接近.我找到了一个适合我的教程和我从StartCom获得的证书.

  1. 在文本编辑器中打开.p7b.
  2. 更改领导者和预告片,以便文件看起来类似于:

    -----BEGIN PKCS7-----
    [... certificate content here ...]
    -----END PKCS7-----
    
    Run Code Online (Sandbox Code Playgroud)

例如,我的StartCom证书始于:

    -----BEGIN CERTIFICATE----- 
Run Code Online (Sandbox Code Playgroud)

结束于:

    -----END CERTIFICATE----- 
Run Code Online (Sandbox Code Playgroud)
  1. 保存并关闭.p7b.
  2. 运行以下OpenSSL命令(适用于Ubuntu 14.04.4,截至撰写本文时):

    openssl pkcs7 -print_certs –in pkcs7.p7b -out pem.cer
    
    Run Code Online (Sandbox Code Playgroud)

输出是带有证书链的.cer.

参考:http://www.freetutorialssubmit.com/extract-certificates-from-P7B/2206


Anr*_*mon 5

唯一的问题是,结果文件中的任何其他证书都不会被识别,因为工具预计每个 PEM/DER 编码文件不会有多个证书。甚至 openssl 本身。尝试

openssl x509 -outform DER -in certificate.cer | openssl x509 -inform DER -outform PEM
Run Code Online (Sandbox Code Playgroud)

亲自看看。