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

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 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'

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

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

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

在我使用Xamarin Forms 4.7和Visual Studio 2019 16.7.0 Preview 3.1的情况下,问题是最近更新的Android构建工具(apksigner)和JDK的版本不匹配。更新JDK到最新,并将新的JDK路径指向Tools->Options->Xamarin->Android Settings,并且它可以工作。

对我来说,我通过将密码从阿拉伯字母改为英语字母来解决这个问题,但首先我去文件夹并删除生成的密钥,然后它就工作了。

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

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

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

当它提示

Enter keystore password:  

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

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

也适用于MacOS Sierra 10.10+。

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