Openssl 使用已签名的der文件和私钥创建密钥库

Openssl 使用已签名的der文件和私钥创建密钥库,openssl,keytool,digital-certificate,Openssl,Keytool,Digital Certificate,目前,我有一个der文件和一个私有文件,但目前我无法找到一个合适的文档来允许我基于der和我的私有密钥创建一个jks密钥库文件 到目前为止,我所尝试的: 创建pkcs12文件: openssl pkcs12 -export -in received_ca_cert.der -inkey mykey.key -certfile received_ca_cert.der -out test-keystore.p12 错误消息: unable to load certificates 我相信

目前,我有一个der文件和一个私有文件,但目前我无法找到一个合适的文档来允许我基于der和我的私有密钥创建一个jks密钥库文件

到目前为止,我所尝试的:

创建pkcs12文件:

 openssl pkcs12 -export -in  received_ca_cert.der  -inkey mykey.key -certfile received_ca_cert.der -out test-keystore.p12
错误消息:

unable to load certificates
我相信,在解决了这个问题之后,我应该使用以下方法:

keytool -importkeystore -srckeystore test-keystore.p12  -srcstoretype pkcs12 -destkeystore test-keystore.jks -deststoretype  JKS

提前感谢。

pkcs12-export
要求它的所有输入文件——私钥和一个或多个证书——都是PEM格式(正如OpenSSL所定义/扩展的,因为二十年前实际的PEM没有涵盖这一点)将证书从DER转换为PEM,使用:

openssl x509 -in certfile.der -inform DER -out certfile.pem
# you can specify -outform PEM but it's the default and hence unneeded
另外:您不应在和
-certfile
中指定与
-in相同的证书<代码>-在
中应该是与私钥匹配的证书。如果您希望包含另一个或多个证书,包括但不限于链证书,则这就是
-certfile
的用途。此类“额外”证书是必要的还是可取的,取决于您的证书是如何颁发的,以及在一定程度上需要谁/什么来验证,而您在问题中甚至没有暗示这一点

请注意,如果您的信任库中有链证书,无论是默认证书还是使用
-CAfile
和/或
-CApath
指定的证书,您都可以指定
-chain
,OpenSSL将自动为您查找/选择所需的链证书;这可能比手动决定进入
-certfile
的内容更容易


同样,您不需要将
-deststoretype jks
指定为
keytool
,因为这是默认设置。

感谢您的反馈,但我们目前的主要问题是,我们的集成平台只接受DER中的文件,而不是PEM中的文件。