keytool错误密钥库被篡改,或者密码不正确
我在本地机器上生成证书时遇到以下错误。
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版本中有一些问题。我在我的同事机器上运行相同的命令,它工作正常。
请分享你的投入。
从你的描述,我假设你在Windows机器上,你的家是abc
所以现在:原因
当你运行这个命令
keytool -genkey -alias tomcat -keyalg RSA
因为你没有指定一个明确的密钥库,它会尝试生成(在你的情况下,因为你是例外,所以要更新)密钥库C:\users\abc>.keystore
,当然你需要提供.keystore的旧密码我相信你正在提供你的版本(一个新的)。
解
-
从
C:\users\abc>
location中删除.keystore
并尝试该命令 -
或者尝试下面的命令来创build一个新的xyzkeystore:
keytool -genkey -keystore xyzkeystore -alias tomcat -keyalg RSA
注意: -genkey
现在比较老,宁愿使用-genkeypair
尽pipe两者同样适用。
我通过使用cacerts keystore的默认密码来解决它: 'changeit'
这个答案将有助于新的Mac用户(适用于Linux,Windows 7 64位)。
空密码工作在我的Mac。 (在terminal粘贴下面的行)
keytool -list -v -keystore ~/.android/debug.keystore
当它提示
Enter keystore password:
只需按下inputbutton(不要input任何东西)。它应该工作。
请确保它的默认debug.keystore
文件,而不是您的基于项目的密钥库文件(密码可能会改变这一点)。
MacOS Sierra 10.10+也能正常工作。
我听说,它也适用于Linux环境。 我还没有在linux中testing过。
使用changeit作为密码也很重要。
这个命令终于为我工作(与docker):
keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass changeit -validity 360 -keysize 2048
在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查看所有属性;
总结来自这个页面的build议,我完成了以下内容:
keytool -genkeypair -keystore ~/.android/release.keystore -alias <my_alias> -storepass <my_cert_pass> -keyalg RSA
然后,我得到了一组关于别名的名称,组织,位置和密码的问题。
keytool错误:java.io.IOException:密钥库被篡改,或者密码不正确
当我将密钥库pathC:\ MyWorks \ mykeystore更改为C:\ MyWorks \ mykeystore.keystore时,我解决了我的问题。