Keytool: импорт сертификата дает сообщение об ошибке - был поврежден Keystore, или пароль был неправильным

Моя цель - создать сертификат, экспортировать его в файл и импортировать в хранилище ключей JDK.

На первом этапе я сгенерировал самоподписанный сертификат, используя следующую команду, указав пароль как "пароль" для хранилища ключей и ключа:

keytool   -genkeypair  -keystore .keystore  -alias uasera  -keyalg RSA

На втором этапе я экспортировал сертификат, используя аналогичный пароль и следующую команду:

keytool  -exportcert  -keystore  .keystore  -alias usera  -file usera.crt

NOW!

Я пытаюсь импортировать этот сертификат в cacerts в JDK, используя аналогичный пароль и следующую команду, но получаю исключение.

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

У меня это разобралось. Я использовал свой пароль, который является "паролем", чтобы обновить хранилище cacerts в JDK, а пароль по умолчанию для cacerts keystore - "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 your <.keystore file path> например keytool -list -v -keystore./app/my-app-key.keystore.

Вам будет предложено ввести пароль хранилища ключей: просто нажмите здесь клавишу ввода. и вы сможете найти сопоставленное имя псевдонима:

Затем запустите grep -rn "<your alias name>". в своем терминале, и вы сможете увидеть свой файл signature.json, как показано ниже:

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

В файле будет ваш пароль в формате json с ключом "mKeyPassword":" < your password > "