在JAVA中将PKCS7证书转换为PKCS12

在JAVA中将PKCS7证书转换为PKCS12,java,ibm-cloud,x509certificate,pkcs#12,ibm-certificate-manager,Java,Ibm Cloud,X509certificate,Pkcs#12,Ibm Certificate Manager,我需要将PKCS7证书转换为PKCS12。我得到了返回PKCS7证书格式的函数,为了将此证书放入IBM证书管理器,我需要将此证书转换为PKCS12 PEM格式。你知道怎么做吗。我正在使用JAVA。尝试使用以下命令将PKCS7转换为PEM: openssl pkcs7-打印证书-输入证书.p7b-输出证书.pem 或者您也可以使用SSL购物者转换器:这是不可能的。PKCS#12格式需要私钥,但PKCS#7不提供私钥。如果将生成的私钥连接到PKCS#7,然后创建PKCS#12,会怎么样?PKCS#

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

尝试使用以下命令将PKCS7转换为PEM: openssl pkcs7-打印证书-输入证书.p7b-输出证书.pem


或者您也可以使用SSL购物者转换器:

这是不可能的。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)
——注意复数证书——只能读取PKCS7证书(通常称为p7b或p7c)。但是阅读私钥可能更难,有时甚至更难。你确定要PEM吗?几乎没有人将PEM用于PKCS12。(对于证书、CSR、许多类型的密钥,包括PKCS8,有时CMS/PKCS7包括p7b/c,但不包括PKCS12。)您的答案的唯一问题是我需要以编程方式转换它。此解决方案不会将密钥添加到输出PEM文件。