我的目标是生成一个证书,将其导出到一个文件中,然后导入到jdk密钥库中。
在第一步中,我使用以下命令生成了一个自签名证书,将密码作为密钥库和密钥的“password”:
keytool -genkeypair -keystore .keystore -alias uasera -keyalg RSA
在第二步中,我使用类似的密码和以下命令导出了证书:
keytool -exportcert -keystore .keystore -alias usera -file usera.crt
现在!
我试图用类似的密码和下面的命令在jdk中的cacerts中导入这个证书,但是得到了一个异常。
keytool -importcert -file usera.crt -keypass password -keystore "C:\Program Files\Java\jdk1.7.0_13\jre\lib\security\cacerts"
错误
k:\java\certificates>keytool-importcert-file usera.crt-keypass password-keystore“c:\program files\java\jdk1.7.0\u 13\jre\lib\security\cacerts”输入密钥库密码:keytool错误:java.io.ioexception:密钥库被篡改或密码不正确
2条答案
按热度按时间pbwdgjma1#
我已经解决了。我用我的密码“password”来更新jdk中的cacerts密钥库,而cacerts密钥库的默认密码是“changeit”
iqjalb3h2#
如果您能够从pc构建应用程序,但无法调用密码,则可以执行以下操作来检索密码:
方法1:
在build.gradle中,添加
println MYAPP_RELEASE_KEY_PASSWORD
具体如下:之后,快跑
cd android && ./gradlew assembleRelease
方法2:跑
keytool -list -v -keystore your <.keystore file path
>例如keytool-list-v-keystore./app/my-app-key.keystore。它将要求您输入密钥库密码:只需在此处按enter键。您将能够找到Map到别名:
然后,快跑
grep -rn "<your alias name>"
. 在终端中,您将能够看到signing.json文件,如下所示:该文件将以json格式提供您的密码和密钥
"mKeyPassword":" < your password > "