我的目标是生成证书,将其导出到文件中并导入JDK密钥库。
在第一步中,我使用以下命令生成了自签名证书,为密钥库和密钥提供密码作为“密码”:
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&gt; keytool -importcert -file usera.crt -keypass password -keystore“C:\ Program Files \ Java \ jdk1.7.0_13 \ jre \ lib \ security \ cacerts” 输入密钥库密码: keytool错误:java.io.IOException:密钥库被篡改,或密码错误
答案 0 :(得分:61)
我已经解决了这个问题。我使用密码“密码”来更新JDK中的cacerts密钥库,而 cacerts密钥库的默认密码是“changeit”
答案 1 :(得分:0)
如果,您可以从PC上构建应用,但您不记得密码,可以通过以下操作来检索密码:
方法1:
在您的build.gradle中,添加println MYAPP_RELEASE_KEY_PASSWORD
如下:
signingConfigs {
release {
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
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键。您将可以找到映射到别名的名称:
然后运行grep -rn "<your alias name>"
。在您的终端中,您将可以看到如下所示的signing.json文件:
./app/build/intermediates/signing_config/release/out/signing-config.json
该文件将以密钥"mKeyPassword":" < your password > "
的json格式提供您的密码