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

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

请分享你的意见。


当前回答

你有两个选择:

CMD在输入时不会在屏幕上显示密码 所以只要输入正确的密码——小心点——然后按回车。

或 只使用:

keytool -list -keystore 'keystoreName' -storepass 'type your keystore passwd'

对于Keys的完整信息,添加-v:

keytool -v -list -keystore 'keystoreName' -storepass 'type your keystore passwd'

其他回答

在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查看所有属性

java.io.IOException:密钥库被篡改,或者密码不正确

当我将密钥库路径C:\MyWorks\mykeystore更改为C:\MyWorks\mykeystore.keystore时,我解决了这个问题。

你有两个选择:

CMD在输入时不会在屏幕上显示密码 所以只要输入正确的密码——小心点——然后按回车。

或 只使用:

keytool -list -keystore 'keystoreName' -storepass 'type your keystore passwd'

对于Keys的完整信息,添加-v:

keytool -v -list -keystore 'keystoreName' -storepass 'type your keystore passwd'

使用openjdk时,我也遇到了同样的问题。 当我把openjdk更新到“11.0.17”后,这个问题就消失了。

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