当推荐不起作用时,论坛中关于此主题的答案都没有充分解决这个问题。即我有一个处理PKI证书的应用程序。这个应用程序一直工作正常,直到我的证书到期,我不得不获得一个新的。我按如下方式更换了证书:
keytool -v -importkeystore -srckeystore cert.p12 -srcstoretype PKCS12 - srcalias [alias name] -destkeystore keystore.jks -deststoretype JKS -deststorepass changeit -destalias [alias name]
当我尝试运行app时,我得到了"无法恢复密钥"异常,这是我以前从未有过的。所以我找到了要运行的建议:
keytool -keypasswd -alias [alias name] -keystore keystore.jks
我根据提示给了它商店密码和证书密码,但仍然收到了同样的例外。怎么办?我整个下午都在试验,似乎没有什么能解决这个例外。并且堆栈跟踪不再提供调试的线索。
答案 0 :(得分:0)
我发现运行以下命令时(使用jdk 1.8):
keytool -importkeystore -srckeystore pkcs12 -destkeystore jks -srcstoretype PKCS12
JKS中新创建的条目的密码将默认为用于保护源PKCS12密钥库的密码。必须用"keytool -keypasswd"
替换输入密码,因为我的应用程序期望JKS“全局”密码和输入密码相同。