Certificate 如何从PKCS12密钥库更改密钥密码

Certificate 如何从PKCS12密钥库更改密钥密码,certificate,keytool,pkcs#12,Certificate,Keytool,Pkcs#12,我正在尝试更改存储在p12密钥库中的证书的密码。我通过使用ikeycmd成功地更改了密钥库密码,但是对于keypass,似乎什么都不起作用。这是我尝试的命令: keytool-keypasswd-storetype PKCS12-keystore$keystore\u文件-alias$KEY\u alias-keypass$KEY\u PASSWORD-new$new\u pass-storepass$store\u pass 我收到以下输出: keytool错误:java.lang.Unsup

我正在尝试更改存储在p12密钥库中的证书的密码。我通过使用ikeycmd成功地更改了密钥库密码,但是对于keypass,似乎什么都不起作用。这是我尝试的命令:

keytool-keypasswd-storetype PKCS12-keystore$keystore\u文件-alias$KEY\u alias-keypass$KEY\u PASSWORD-new$new\u pass-storepass$store\u pass

我收到以下输出: keytool错误:java.lang.UnsupportedOperationException:-如果-storetype为PKCS12,则不支持keypasswd命令

我尝试在不使用-storetype PKCS12选项的情况下运行该命令,结果得到: keytool错误(可能未翻译):java.io.IOException:密钥库格式无效


有人能帮忙吗?谢谢。

根据互联网标准,在创建/处理
PCKS12
keystore时应遵循以下几点:

  • PKCS12
    应仅包含1个密钥对条目,即与证书链关联的私钥
  • 唯一条目的密钥密码与密钥库密码相同
  • Java也遵循这些规则。因此,当您将存储类型提供为PKCS12时,尝试更改密钥密码时会出现错误

    因此,理想情况下,您只需要更改PKCS12密钥库的密钥库密码。您不应该更改密钥密码

    但是,如果pkcs12密钥库不遵循上述规则,并且您正试图纠正它,但使用java
    keytool
    命令未能成功,我建议尝试使用(与任何密钥库交互的GUI工具)修复它

    它可以选择更改条目的密钥密码