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

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版本有一些问题。我在我同事的机器上运行了同样的命令,它工作得很好。

请分享你的意见。


当前回答

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

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

其他回答

如果您正在按照本指南为Flutter应用程序签名,则构建并发布Android应用程序并遇到此错误。我希望这个答案能帮到你。

在我的例子中,我改变了存储我的key.jks的路径。这发生在我身上,因为我在那个路径中有一个现有的文件。

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

该命令存储密钥。JKS文件在您的主目录。要将其存储在其他地方,请更改传递给-keystore参数的参数。

就我而言,

keytool -genkey -v -keystore /Users/Y/Desktop/X/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias keyYour

即Y -用户名和X -文件夹名

系统提示“Enter keystore password:”和“Re-enter new password:”。在这里你可以使用任何你想要的密码。

但是,要保持keystore文件的私密性;不要把它签入公共源代码控制!

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

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

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

使用changeit作为密码也很重要。

这个命令终于对我有用了(使用jetty):

 keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass changeit -validity 360 -keysize 2048

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

在我的Mac上,空密码是可行的

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

按回车键,就会显示出来

Enter keystore password:  

在这里,只要按Enter键就可以获得空密码