【问题标题】:Convert a .pk8 file to .key file将 .pk8 文件转换为 .key 文件
【发布时间】:2011-11-01 08:03:55
【问题描述】:

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

请提出可能的解决方案??

【问题讨论】:

    标签: android openssl


    【解决方案1】:

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

    openssl pkcs8 -in file.pk8 -out key.pem
    

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

    openssl pkcs8 -in file.pk8 -inform DER -out key.pem
    

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

    openssl x509 -in single_cert.cer -inform DER -out single_cert.pem
    

    打开文本编辑器并粘贴所有 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 -----
    ...
    

    保存这个,例如作为所有.pem。要最终创建您的 PKCS#12 密钥库,请发出以下命令:

    openssl pkcs12 -export -in all.pem -out file.p12 -name "somename"
    

    提供密码并完成。 name 参数将成为您在 Java 世界中的“别名”。

    【讨论】:

    • 我在执行第一个 pk8 到 pem 转换例程时遇到以下错误。错误 -> 读取需要加密私钥的密钥时出错...pkcs8 中的错误
    • 听起来 PKCS#8 密钥未加密 - 尝试添加 -nocrypt 参数。
    • 与第二个即 openssl pkcs8 -in file.pk8 -inform DER -out key.pem 我收到以下错误 Error->Error reading key asn1 encoding routines:ASN1_CHECK_TLEN :wrong tag,ASN1_ITEM_EX_D2I ,ASN1_TEMPLETE_NOEXP_D2I 错误在 pkcs8 谢谢
    • 试试openssl pkcs8 -in file.pk8 -nocrypt -out key.pem 或openssl pkcs8 -in file.pk8 -inform DER -nocrypt -out key.pem?
    【解决方案2】:

    关注this guide 为我工作。具体使用keytool-iui导入私钥。

    【讨论】:

      猜你喜欢
      • 2014-10-08
      • 2014-11-06
      • 2020-06-11
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 2021-06-08
      • 2020-02-13
      • 1970-01-01
      相关资源
      最近更新 更多