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

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加密证书时遇到了这个问题

其他回答

如果您已经有了.store文件,则必须使用与生成该文件时相同的密码。所以我的解决方案是:

rm *.store
rm *.cer

这可能听起来很奇怪,但我只是想了解keytool和我的源代码控制我的教程文件和重新运行他们以后!

在tomcat 8.5中注意写正确的属性名。这是我在server.xml上的代码:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/keystore" certificateKeystorePassword="mypassword" type="RSA"/>
    </SSLHostConfig>
</Connector>

您可以访问https://tomcat.apache.org/tomcat-8.5-doc/config/http.html查看所有属性

我通过使用cacerts keystore的默认密码来解决这个问题:'changeit'

适用于Windows

打开命令提示符(按Windows键+ R,然后在出现的对话框中输入“cmd”,不带引号,然后按Enter键)。

然后输入下面的代码嗅探:

cd C:\Program Files\Java\ jdk1.7.0_25\bin

然后输入以下命令

"C:/Documents and Settings/Your Name/.android/debug.keystore"

然后它将要求Keystore密码。默认密码为 “android”输入或只是点击输入“不要输入任何密码”。

在我的情况下,我需要有根访问权限。