keytool:证书导入提供错误消息-密钥库被篡改,或者密码不正确

smdnsysy  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(801)

我的目标是生成一个证书,将其导出到一个文件中,然后导入到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:密钥库被篡改或密码不正确

pbwdgjma

pbwdgjma1#

我已经解决了。我用我的密码“password”来更新jdk中的cacerts密钥库,而cacerts密钥库的默认密码是“changeit”

iqjalb3h

iqjalb3h2#

如果您能够从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键。您将能够找到Map到别名:
然后,快跑 grep -rn "<your alias name>" . 在终端中,您将能够看到signing.json文件,如下所示:

./app/build/intermediates/signing_config/release/out/signing-config.json

该文件将以json格式提供您的密码和密钥 "mKeyPassword":" < your password > "

相关问题