【问题标题】:getting error while trying to convert pfx without password to jks尝试将没有密码的 pfx 转换为 jks 时出错
【发布时间】:2021-10-29 01:50:58
【问题描述】:

当我尝试将没有密码生成的 pfx 文件转换为 jks 时,我收到来自 keytool 的 WARNING WARNING 等消息,然后出现错误

当我对受密码保护的 pfx 执行相同操作时,一切都很好。

谁能建议我能做什么!?也许是从其他格式转换或使用其他工具?

ps。我也转换为 pem,并将 pem 转换为 jks,但它失败了,因为它不是 x509 证书。

编辑

keytool.exe -importkeystore -srckeystore "C:\Users\rodislav.moldovan\Projects
\ceva.pfx" -srcstoretype pkcs12 -destkeystore "C:\Users\rodislav.mol
dovan\Projects\ceva.jks" -deststoretype JKS
Enter destination keystore password: ******
Re-enter new password: ******
Enter source keystore password: // pressed enter, because there is no pass

*****************  WARNING WARNING WARNING  *****************
* The integrity of the information stored in the srckeystore*
* has NOT been verified!  In order to verify its integrity, *
* you must provide the srckeystore password.                *
*****************  WARNING WARNING WARNING  *****************

keytool error: java.security.UnrecoverableKeyException: Get Key failed: null

【问题讨论】:

  • 你能提供更多关于你使用的命令和你得到的错误的细节吗?
  • 你好,是的,你可以看看这个

标签: x509 keytool pem pfx jks


【解决方案1】:

您可以先使用 OpenSSL 制作 p12 密钥库,然后使用 Keytool 将其转换为 JKS 格式。

用于 CER 和 PVK 文件的 OpenSSL > P12

openssl pkcs12 -export -name servercert -in selfsignedcert.crt -inkey serverprivatekey.key -out myp12keystore.p12

p12 的 Keytool > JKS

keytool -importkeystore -destkeystore mykeystore.jks -srckeystore myp12keystore.p12 -srcstoretype pkcs12 -alias servercert

【讨论】:

    【解决方案2】:

    尝试将其转换为p12,之前有密码。

    openssl pkcs12 -in in.pfx -out out.p12

    【讨论】:

    • 这不起作用。输出的文件是 PEM 格式而不是 PKCS12。
    【解决方案3】:

    如果您只有一个不受密码保护的完整 PFX 文件;例如,您像这样从 Azure Key Vault 下载了证书:

    az keyvault secret download -f mycert.pfx --encoding base64 --vault-name <vault name> --name <certificate name>
    

    然后你可以跳过几个圈来添加密码保护(从这里得到这个:http://www.1st-setup.nl/wordpress/howto-change-password-on-pfx-certificate-using-openssl/):

    openssl pkcs12 -in mycert.pfx -out temppem.pem -nodes
    openssl pkcs12 -export -out protectedcert.pfx -in temppem.pem
    rm certs/mycert.pfx
    rm certs/temppem.pem
    

    显然您需要在第二个 openssl 命令中指定密码来保护新的 PFX。

    【讨论】:

      猜你喜欢
      • 2013-10-14
      • 2015-01-04
      • 1970-01-01
      • 2020-01-18
      • 2021-10-24
      • 2020-04-11
      • 2012-10-31
      • 2016-09-02
      • 2014-12-14
      相关资源
      最近更新 更多