我在本地机器上生成证书时出现以下错误。

C:\Users\abc>keytool -genkey -alias tomcat -keyalg RSA
Enter keystore password:
keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect

我认为jdk版本有一些问题。我在我同事的机器上运行了同样的命令,它工作得很好。

请分享你的意见。


当前回答

我通过删除输出文件并再次运行该命令来修复此问题。事实证明,它不会覆盖之前的文件。我在更新一个让我们用tomcat加密证书时遇到了这个问题

其他回答

这个答案将有助于新Mac用户(适用于Linux, windows 7 64位)。

空密码在我的mac上工作。(在终端粘贴以下一行)

keytool -list -v -keystore ~/.android/debug.keystore

当它提示

Enter keystore password:  

只要按回车键(不要输入任何东西)。它应该会起作用。

请确保它是默认调试。密钥存储库文件,不适用于基于项目的密钥存储库文件(密码可能为此更改)。

也适用于MacOS Sierra 10.10+。

我听说,它也适用于linux环境。我还没有在Linux中进行测试。

总结这一页的建议,我总结出如下内容:

keytool -genkeypair -keystore ~/.android/release.keystore -alias <my_alias> -storepass <my_cert_pass> -keyalg RSA

然后我得到了一组关于我的别名的名称、组织、位置和密码的问题。

这个答案对于那些在不同项目中管理多个密钥存储库的人很有帮助。

我有同样的错误,我注意到我正在使用一个文件密钥库。JKS和另一个密钥库的密码。JKS会抛出这个异常,因为密码不匹配。

刚从4.0升级到Android Studio 4.2。显然,Android Studio无声地改变了我的密钥库密码,它已经坐在那里没有改变,完美地工作了一年多。

只是重新租了两个密码。

Sigh

 [root@localhost Certificate]# openssl pkcs12 -export -in 
 /opt/Certificate/115c99f4c5aa98f5.crt -inkey /opt/Certificate/ravi.in.key -certfile 
/opt/Certificate/gd_bundle-g2-g1.crt -out RaviNew.p12

Enter Export Password: <Password>
Verifying - Enter Export Password: <Password>

注意:-上面导出密码写下来的任何地方,因为它是必须创建JKS文件(这是取决于你的选择什么密码你想做)

  keytool -importkeystore -srckeystore DigiEduNew.p12 -srcstoretype pkcs12 -destkeystore finaldigiEdu.jks -deststoretype JKS
  Importing keystore DigiEduNew.p12 to finaldigiEdu.jks...
  Enter destination keystore password: <Any Password >
  Re-enter new password: <Any Password >
  Enter source keystore password: <.P12 Password >
  Entry for alias 1 successfully imported.
  Import command completed:  1 entries successfully imported, 0 entries failed or 
  cancelled



 Warning:
 The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 
 which is an industry standard format using "keytool -importkeystore -srckeystore 
 finaldigiEdu.jks -destkeystore finaldigiEdu.jks -deststoretype pkcs12".