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
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'
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 > "