web-dev-qa-db-fra.com

keytool: L'importation de certificat donne un message d'erreur - Le magasin de clés a été falsifié ou le mot de passe était incorrect

Mon objectif est de générer un certificat, de l'exporter dans un fichier et d'importer dans le magasin de clés JDK.

Dans la première étape, j'ai généré un certificat auto-signé à l'aide de la commande suivante, en fournissant le mot de passe comme "mot de passe" pour le magasin de clés et la clé:

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

Dans la deuxième étape, j'ai exporté le certificat en utilisant un mot de passe similaire et la commande suivante:

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

MAINTENANT!

J'essaie d'importer ce certificat dans cacerts dans JDK en utilisant un mot de passe similaire et la commande suivante mais en obtenant une exception.

keytool -importcert -file usera.crt -keypass password  -keystore "C:\Program Files\Java\jdk1.7.0_13\jre\lib\security\cacerts"

erreur [~ # ~] [~ # ~]

K:\Java\certificats> keytool -importcert -file usera.crt -keypass password -keystore "C:\Program Files\Java\jdk1.7.0_13\jre\lib\security\cacerts" Entrez le mot de passe du fichier de clés: erreur keytool: Java .io.IOException: le magasin de clés a été falsifié ou le mot de passe était incorrect

15
Kalher

J'ai tout réglé. J'utilisais mon mot de passe qui est 'mot de passe' pour mettre à jour le magasin de clés cacerts dans JDK tandis que le mot de passe par défaut pour le magasin de clés cacerts est 'changeit'

67
Kalher

SI vous pouvez créer votre application à partir d'un PC, mais vous ne vous souvenez pas du mot de passe, voici ce que vous pouvez faire pour récupérer le mot de passe:

Méthode 1:

Dans votre build.gradle, ajoutez println MYAPP_RELEASE_KEY_PASSWORD comme ci-dessous:

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
        }
    }
}

Après cela, exécutez cd Android && ./gradlew assembleRelease

Méthode 2:

Courir keytool -list -v -keystore your <.keystore file path> par exemple keytool -list -v -keystore ./app/my-app-key.keystore.

Il vous demandera d'entrer le mot de passe du magasin de clés: Appuyez simplement sur la touche Entrée ici. et vous pourrez trouver mappé au nom d'alias:

Ensuite, exécutez grep -rn "<your alias name>". dans votre terminal et vous pourrez voir votre fichier signature.json comme ci-dessous:

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

Le fichier aura votre mot de passe au format json avec la touche "mKeyPassword":" < your password > "

0
Dipesh Karki