首页 > 解决方案 > openssl der 文件导入到 java 密钥库

问题描述

我用 openssl 创建了一个密钥对,并希望它们导入到 java-keystore:

1) openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out my_privatekey.pem
2) openssl rsa -pubout -outform DER -in my_privatekey.pem -out mypublic_key.der
3) openssl pkcs8 -topk8 -nocrypt -outform DER -in my_privatekey.pem -out my_privatekey.der

首先,我创建了一个私钥(.pem 格式),然后我创建了一个公钥,最后我将私钥转换为可以在 java (pkcs8) 中使用的格式。

现在,我想在我的 java 应用程序中以安全的方式使用这些密钥,所以我做了一些研究,解决方案似乎是使用 java-keystore。

但是,如果我是正确的,您无法将公钥直接存储到密钥库中,因为您必须先创建证书:

将您的证书转换为 DER 格式:

openssl x509 -outform der -in certificate.pem -out certificate.der

导入密钥库

keytool -import -alias your-alias -keystore cacerts -file certificate.der

这让我现在提出我的问题。是否可以在没有证书的情况下将私钥和公钥导入密钥库?我不需要证书,因为我只想安全地存储我的密钥,所以它们是受密码保护的。

如果这是不可能的,那么您可以创建并签署您自己的证书。但是,证书可能会过期,所以一段时间后我必须总是更新它还是我错了?

我与第三方共享这个公钥(他们需要这个密钥来验证我用我的私钥签名的数据),我还从他们那里得到一个公钥来加密一些数据。所以我需要在最后存储 2 个公钥(我的密钥和我收到的公钥)。

我怎么做?我是否需要创建 2 个证书作为 hack,以便能够将它们存储到 java-keystore 中?

标签: javaopensslpublic-key-encryption

解决方案


“keytool -importcert”命令可以轻松读取 PEM 和 DER 格式的证书。

keytool -importcert -file <openssl_crt.pem> -keystore <jks-file-name.jks> -storepass jkspass -alias <alias-name> -keypass <keypass>

keytool 在 DER 和 PEM 中导入证书


推荐阅读