将.pk8文件转换为.key文件

nee*_*raj 6 android openssl

我有一个.pk8文件,我想将其转换为.key文件格式,以便我可以将它们移动到pkcs12存储中,然后再使用keytool移动到java密钥库.

请建议可能的解决方案

emb*_*oss 8

首先使用 OpenSSL 命令行工具将 PKCS#8 文件转换为普通私钥:

openssl pkcs8 -in file.pk8 -out key.pem
Run Code Online (Sandbox Code Playgroud)

如果这给你一个错误,那可能是因为密钥是 DER 格式,然后试试这个:

openssl pkcs8 -in file.pk8 -inform DER -out key.pem
Run Code Online (Sandbox Code Playgroud)

收集您想要在 PKCS#12 密钥库中的证书并确保它们是 PEM 编码的(在文本编辑器中打开它们 - 如果文件以 '----- BEGIN X.509 CERTIFICATE ---- -' 或类似的,那么你已经可以开始了):

openssl x509 -in single_cert.cer -inform DER -out single_cert.pem
Run Code Online (Sandbox Code Playgroud)

打开文本编辑器并将所有 PEM 编码的证书以及key.pem 的内容粘贴到该文件中,一个接一个地获得如下文件:

----- BEGIN RSA PRIVATEKEY ----- '' or another format, depends on your key
...contents of your key file
----- END RSA PRIVATEKEY -----
----- BEGIN X.509 CERTIFICATE -----
...contents of certificate 1
----- END X.509 CERTIFICATE -----
----- BEGIN X.509 CERTIFICATE -----
...contents of certificate 2
----- END X.509 CERTIFICATE -----
...
Run Code Online (Sandbox Code Playgroud)

将其保存,例如保存为 all.pem。要最终创建您的 PKCS#12 密钥库,请发出以下命令:

openssl pkcs12 -export -in all.pem -out file.p12 -name "somename"
Run Code Online (Sandbox Code Playgroud)

提供一个密码,你就完成了。该name参数将成为您在 Java 世界中的“别名”。

  • 试试 `openssl pkcs8 -in file.pk8 -nocrypt -out key.pem` 或 `openssl pkcs8 -in file.pk8 -inform DER -nocrypt -out key.pem`? (6认同)
  • 听起来 PKCS#8 密钥未加密 - 尝试添加 `-nocrypt` 参数。 (3认同)