在本地计算机上生成证书时出现以下错误。
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版本中存在一些问题。我在同事计算机上运行了相同的命令,并且运行正常。
请分享您的意见。
在本地计算机上生成证书时出现以下错误。
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版本中存在一些问题。我在同事计算机上运行了相同的命令,并且运行正常。
请分享您的意见。
Answers:
根据您的描述,我假设您在Windows计算机上并且您的住所是abc
所以现在:原因
当您运行此命令时
keytool -genkey -alias tomcat -keyalg RSA
因为您未指定显式密钥库,它会尝试生成(并且在您遇到异常的情况下进行更新)C:\users\abc>.keystore
,当然,您需要为.keystore提供旧密码,而我相信您正在提供版本(新的一个)。
解
.keystore
从C:\users\abc>
位置删除并尝试命令
或尝试使用以下命令来创建新的xyzkeystore:
keytool -genkey -keystore xyzkeystore -alias tomcat -keyalg RSA
注意: 虽然两者都可以正常工作,但-genkey
现在还是比较旧了-genkeypair
。
我通过使用cacerts keystore的默认密码解决了它: 'changeit'
空密码在我的mac中工作。(将以下行粘贴到终端中)
keytool -list -v -keystore ~/.android/debug.keystore
当提示
Enter keystore password:
只需按Enter键(请勿输入任何内容)。
请确保默认 debug.keystore
文件,而不是基于项目的密钥库文件(密码可能会更改)。
同样适用于MacOS Sierra 10.10+。
听说,它也适用于linux环境。我还没有在Linux中测试过。
在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查看所有属性
在Windows上工作
打开命令提示符(按Windows键+ R,然后在出现的对话框中键入不带引号的“ cmd”,然后按Enter键)。
然后在下面输入代码嗅探:
然后输入以下命令
然后,它将立即要求输入密钥库密码。默认密码是“ android”类型,然后输入或直接输入“ DONT TYPE ANY PASSWORD”。
检查您的主文件夹~/.gradle/gradle.properties
。有时,如果您gradle.properties
在主目录中,则会从那里获取详细信息。您可以更改它或删除文件。然后它将从您的本地文件夹中获取所需的详细信息。
[root@localhost Certificate]# openssl pkcs12 -export -in
/opt/Certificate/115c99f4c5aa98f5.crt -inkey /opt/Certificate/ravi.in.key -certfile
/opt/Certificate/gd_bundle-g2-g1.crt -out RaviNew.p12
Enter Export Password: <Password>
Verifying - Enter Export Password: <Password>
注意:-在Export Pasworrd上方,请在任何地方写下,因为必须创建JKS文件(这取决于您要选择的密码)
keytool -importkeystore -srckeystore DigiEduNew.p12 -srcstoretype pkcs12 -destkeystore finaldigiEdu.jks -deststoretype JKS
Importing keystore DigiEduNew.p12 to finaldigiEdu.jks...
Enter destination keystore password: <Any Password >
Re-enter new password: <Any Password >
Enter source keystore password: <.P12 Password >
Entry for alias 1 successfully imported.
Import command completed: 1 entries successfully imported, 0 entries failed or
cancelled
Warning:
The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12
which is an industry standard format using "keytool -importkeystore -srckeystore
finaldigiEdu.jks -destkeystore finaldigiEdu.jks -deststoretype pkcs12".
对我来说,我通过将密码从阿拉伯字母更改为英语字母来解决了这个问题,但是首先我进入了该文件夹并删除了生成的密钥,然后它才起作用。
如果您正在按照本指南进行Flutter应用程序签名,请执行以下操作:生成并发布Android应用程序,然后执行此错误。希望这个答案对您有所帮助。
就我而言,我更改了存储key.jks的路径。这发生在我身上,因为我在该路径中已有一个文件。
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
此命令将key.jks文件存储在主目录中。要将其存储在其他位置,请更改传递给-keystore参数的参数。
就我而言
keytool -genkey -v -keystore /Users/Y/Desktop/X/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias keyYour
即X-用户名和Y-文件夹名
然后,系统将提示您输入keystore password: 和重新输入新密码:。您可以在此处使用所需的任何密码。
但是,请将密钥库文件保持私有状态;不要将其检入公共源代码控制中!