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

2022-09-02 02:06:34

我的目标是生成一个证书,将其导出到文件中,然后导入到 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>keytool -importcert -file usera.crt -keypass password -keystore “C:\Program Files\Java\jdk1.7.0_13\jre\lib\security\cacerts” 输入密钥库密码: keytool 错误: java.io.IOException: Keystore 被篡改,或者密码不正确


答案 1

我已经解决了这个问题。我使用我的密码“密码”来更新JDK中的cacerts密钥库,而cacerts密钥库的默认密码是“changeit”


答案 2

如果你能够从电脑生成应用,但未记出密码,则可以执行以下操作来检索密码:

方法 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 ./app/my-app-key.keystore。keytool -list -v -keystore your <.keystore file path

它将要求您输入密钥库密码:只需在此处按Enter键即可。您将能够找到映射到别名:

然后,运行 .在您的终端中,您将能够看到您的signing.json文件,如下所示:grep -rn "<your alias name>"

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

该文件将具有json格式的密码和密钥"mKeyPassword":" < your password > "


推荐