【问题标题】:Convert PKCS7 certificate to PKCS12 in JAVA在 JAVA 中将 PKCS7 证书转换为 PKCS12
【发布时间】:2018-11-15 09:34:33
【问题描述】:

我需要将 PKCS7 证书转换为 PKCS12。我得到了返回 PKCS7 证书格式的函数,为了将此证书放入 IBM 证书管理器,我需要将此证书转换为 PKCS12 PEM 格式。你知道怎么做吗?我正在使用 JAVA。

【问题讨论】:

  • 不可能。 PKCS#12 格式需要私钥,但 PKCS#7 不提供。
  • 如果将我生成的私钥连接到 PKCS#7 并在此之后创建 PKCS#12 怎么办?
  • PKCS#7 不支持私钥,您不能将它们附加到那里。
  • @Crypt32:不完全正确; PKCS12通常用于 privatekey+certchain,但该格式能够单独存储证书,Java 8+ 支持以这种方式使用它(也称为信任库)。但大多数其他软件没有,我不知道“IBM 证书管理器”。
  • OP: Java CertificateFactory.getInstance("X.509").generateCertificates(InputStream) -- 注意复数 Certificates -- 只能读取 PKCS7-certs(通常称为 p7b 或 p7c)。但是读取私钥可能更难,有时更难。你确定你想要PEM吗?几乎没有人将 PEM 用于 PKCS12。 (对于证书、CSR、许多类型的密钥,包括 PKCS8,有时 CMS/PKCS7 包括 p7b/c,但不包括 PKCS12。)

标签: java ibm-cloud x509certificate pkcs#12 ibm-certificate-manager


【解决方案1】:

尝试使用以下命令将 PKCS7 转换为 PEM: openssl pkcs7 -print_certs -in certificate.p7b -out certificate.pem

link

或者您也可以使用 SSL Shopper 转换器:https://www.sslshopper.com/ssl-converter.html

【讨论】:

  • 你的答案唯一的问题是我需要以编程方式转换它。
  • 此解决方案不会将密钥添加到输出 PEM 文件中。
猜你喜欢
  • 1970-01-01
  • 2010-11-30
  • 1970-01-01
  • 1970-01-01
  • 2019-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-27
相关资源
最近更新 更多