erreur keytool Le fichier de clés a été falsifié ou le mot de passe était incorrect

199

J'obtiens l'erreur suivante lors de la génération de certificats sur ma machine locale.

C:\Users\abc>keytool -genkey -alias tomcat -keyalg RSA
Enter keystore password:
keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect

Je pense qu'il y a des problèmes dans la version jdk.J'ai exécuté la même commande sur la machine de mes collègues et cela fonctionne bien.

Veuillez partager vos contributions.

C4CodeE4Exe
la source
1
donnez-vous un mot de passe correct? et exécuter la commande à partir du répertoire approprié?
dev2d
1
Au fur et à mesure que je le crée, je saisis un nouveau mot de passe.De quel répertoire dois-je l'exécuter?
C4CodeE4Exe
keytool -genkeypair -alias tomcat -keyalg RSA -keystore D: \ keystore.jks essayez ceci pour générer le keystore puis exportez cer comme keytool -export -alias mycert -keystore D: \ keystore.jks -file vorburger.cer
dev2d
Pouvez-vous clarifier s'il vous plaît, est-ce que cela aura le même effet qu'avec "keytool -genkey -alias tomcat -keyalg RSA".
C4CodeE4Exe
pouvez-vous me dire le but de générer ce cer?
dev2d

Réponses:

91

D'après votre description, je suppose que vous êtes sur Windows et que votre maison est abc

Alors maintenant: Cause

Lorsque vous exécutez cette commande

keytool -genkey -alias tomcat -keyalg RSA

parce que vous ne spécifiez pas un keystore explicite, il essaiera de générer (et dans votre cas, comme vous obtenez une exception, mettez à jour) le keystore C:\users\abc>.keystoreet bien sûr vous devez fournir l'ancien mot de passe pour .keystore pendant que je pense que vous fournissez votre version (un nouveau).

Solution

  1. Soit supprimer .keystorede l' C:\users\abc>emplacement et essayer la commande

  2. ou essayez la commande suivante qui créera un nouveau xyzkeystore:

    keytool -genkey -keystore xyzkeystore -alias tomcat -keyalg RSA

Remarque: -genkey est vieux maintenant plutôt utiliser -genkeypairbien que les deux fonctionnent également.

Kalher
la source
1
Bien que je l'ai compris moi-même. «Soit supprimer .keystore de l'emplacement C: \ users \ abc> et essayer la commande» est la bonne solution.
C4CodeE4Exe
est-il possible de fournir le passage du keystore dans les arguments?
user1767754
2
J'ai supprimé le fichier de keystore existant, puis j'ai suivi la commande keytool -genkey -alias key0-keyalg RSA, puis il me demande un nouveau mot de passe et d'autres données, j'ai donné. Mais encore maintenant, quand j'essaye de construire un apk signé, il affiche le même message d'erreur - "Keystore a été falsifié, ou le mot de passe était incorrect" Quel est le problème ici?
284

Je l'ai résolu en utilisant le mot de passe par défaut pour le keystore de cacerts: 'changeit'

sarrdou
la source
haha .. donc en fait ce n'est pas changer le mot de passe pour le nouveau, et le travail par défaut: D
Muhammad Suleman
merci :) .. cela a fonctionné à ma fin..et j'utilisais le mot de passe que j'ai utilisé pour exporter le fichier .cer ..
Danyal Sandeelo
A travaillé pour moi. Merci!
colefner
A travaillé pour moi aussi. C'est assez drôle mais ça marche. Merci.
Srikanth Reddy
173

Cette réponse sera utile pour les nouveaux utilisateurs Mac (fonctionne également pour Linux, Windows 7 64 bits).

Le mot de passe vide fonctionnait sur mon mac. (collez la ligne ci-dessous dans le terminal)

keytool -list -v -keystore ~/.android/debug.keystore

quand il demande

Enter keystore password:  

appuyez simplement sur le bouton Entrée (ne tapez rien). Cela devrait fonctionner.

Veuillez vous assurer qu'il s'agit du debug.keystore fichier par défaut , pas du fichier de keystore basé sur votre projet (le mot de passe peut changer pour cela).

Fonctionne également bien pour MacOS Sierra 10.10+.

J'ai entendu dire que cela fonctionne également pour l'environnement Linux. je n'ai pas encore testé cela sous Linux.

Zumry Mohamed
la source
2
Merci. Cela a fonctionné sur mes fenêtres 10 pour le keystore de débogage
Vinayak Singh
1
vous avez sauvé la journée!
SKG
12

J'ai résolu ce problème en utilisant le mot de passe par défaut " changeit ".

tapas talukder
la source
1
fonctionne parfaitement!
Gaurav
11

L'utilisation de changeit pour le mot de passe est également importante.

Cette commande a finalement fonctionné pour moi (avec jetty):

 keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass changeit -validity 360 -keysize 2048
thouliha
la source
11

Dans tomcat 8.5, faites attention à écrire le nom correct des attributs. C'est mon code sur server.xml:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/keystore" certificateKeystorePassword="mypassword" type="RSA"/>
    </SSLHostConfig>
</Connector>

Vous pouvez visiter https://tomcat.apache.org/tomcat-8.5-doc/config/http.html pour voir tous les attributs

Gopeca
la source
1
Merci d'avoir indiqué d'où vient le mot de passe! :)
N00b Pr0grammer
4

Fonctionne sous Windows

Ouvrez l'invite de commande (appuyez sur la touche Windows + R puis tapez "cmd" sans guillemets dans la boîte de dialogue qui apparaît, puis appuyez sur la touche Entrée).

puis tapez le code sniff ci-dessous:

  1. cd C: \ Program Files \ Java \ jdk1.7.0_25 \ bin

puis tapez la commande suivante

  1. keytool -list -keystore "C: / Documents and Settings / Votre nom / .android / debug.keystore"

Ensuite, il vous demandera le mot de passe Keystore maintenant. Le mot de passe par défaut est de type "android" et entrez ou appuyez simplement sur "DONT TYPE ANY PASSWORD".

Avinash Shinde
la source
3

Vérifiez votre dossier personnel ~/.gradle/gradle.properties. Parfois, si vous avez gradle.propertiesdans le répertoire personnel, il prend des détails à partir de là. Soit vous pouvez changer cela, soit supprimer les fichiers. Ensuite, il prendra les détails requis de votre dossier local.

Ankit Sinha
la source
1

Si vous travaillez à signer votre application Flutter en suivant ce guide, créez et publiez une application Android et exécutez cette erreur. J'espère que cette réponse vous aidera.

Dans mon cas, j'ai changé le chemin pour stocker mon key.jks. Cela m'est arrivé parce qu'il y avait un fichier existant dans ce chemin.

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

Cette commande stocke le fichier key.jks dans votre répertoire personnel. Pour le stocker ailleurs, modifiez l'argument que vous passez au paramètre -keystore.

Dans mon cas,

keytool -genkey -v -keystore /Users/Y/Desktop/X/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias keyYour

ie Y - Nom d'utilisateur et X - nom du dossier

Ensuite , vous serez invité à Entrez le mot de passe keystore: et Saisir à nouveau le mot de passe: . Ici, vous pouvez utiliser le mot de passe de votre choix.

Cependant, gardez le fichier keystore privé; ne l'enregistrez pas dans le contrôle de source public!

Abel Tilahun
la source
0

Résumant les conseils de cette page, j'ai terminé avec ce qui suit:

keytool -genkeypair -keystore ~/.android/release.keystore -alias <my_alias> -storepass <my_cert_pass> -keyalg RSA

Ensuite, j'ai reçu une série de questions concernant le nom, l'organisation, l'emplacement et le mot de passe de mon alias.

goRGon
la source
0

Erreur keytool: java.io.IOException: Keystore a été falsifié ou le mot de passe était incorrect

J'ai résolu mon problème lorsque j'ai changé le chemin du fichier de clés C: \ MyWorks \ mykeystore en C: \ MyWorks \ mykeystore.keystore .

CLIFFORD PY
la source
1
le premier chemin "C: \ MyWorks \ mykeystore" n'est pas un fichier de clés.
Jorgesys
0

Dans mon cas, je devais avoir rootaccès.

Alex Po
la source
0

J'ai résolu ce problème en supprimant le fichier de sortie et en exécutant à nouveau la commande. Il s'avère qu'il n'écrase PAS le fichier précédent. J'ai eu ce problème lors du renouvellement d'un certificat Let's encrypt avec tomcat

gimp3695
la source
0
 [root@localhost Certificate]# openssl pkcs12 -export -in 
 /opt/Certificate/115c99f4c5aa98f5.crt -inkey /opt/Certificate/ravi.in.key -certfile 
/opt/Certificate/gd_bundle-g2-g1.crt -out RaviNew.p12

Enter Export Password: <Password>
Verifying - Enter Export Password: <Password>

Remarque: - Au - dessus de Export Pasworrd, écrivez n'importe où car il est indispensable de créer un fichier JKS (cela dépend de votre choix du mot de passe que vous voulez créer)

  keytool -importkeystore -srckeystore DigiEduNew.p12 -srcstoretype pkcs12 -destkeystore finaldigiEdu.jks -deststoretype JKS
  Importing keystore DigiEduNew.p12 to finaldigiEdu.jks...
  Enter destination keystore password: <Any Password >
  Re-enter new password: <Any Password >
  Enter source keystore password: <.P12 Password >
  Entry for alias 1 successfully imported.
  Import command completed:  1 entries successfully imported, 0 entries failed or 
  cancelled



 Warning:
 The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 
 which is an industry standard format using "keytool -importkeystore -srckeystore 
 finaldigiEdu.jks -destkeystore finaldigiEdu.jks -deststoretype pkcs12".
Ravi Tyagi
la source
0

Pour moi, je l'ai résolu en changeant les mots de passe de la lettre arabe à la lettre anglaise, mais d'abord je suis allé dans le dossier et j'ai supprimé la clé générée, puis cela fonctionne.

Mohammed Salim
la source
0

Dans mon cas avec Xamarin Forms 4.7 et Visual Studio 2019 16.7.0 Preview 3.1, le problème était une incompatibilité de version des outils Android Build récemment mis à jour (apksigner) et JDK. Mise à jour du JDK vers le dernier et pointé le nouveau chemin JDK sur Outils-> Options-> Xamarin-> Paramètres Android, et cela fonctionne.

Mehmet AVŞAR
la source