Changer les mots de passe du magasin de clés

267

J'ai actuellement un magasin de clés, avec un mot de passe particulier que je devrais seulement connaître. Je dois maintenant donner accès à ce magasin de clés à quelqu'un d'autre, je voudrais donc:

1) Modifiez le mot de passe, afin que je puisse le partager avec les autres et les laisser signer
2) Créez un mot de passe différent et permettez-leur de signer avec.

Est-ce possible? et - si oui - comment?

user313724
la source

Réponses:

489

Keystore n'a qu'un seul mot de passe. Vous pouvez le changer en utilisant keytool:

keytool -storepasswd -keystore my.keystore

Pour modifier le mot de passe de la clé:

keytool -keypasswd  -alias <key_name> -keystore my.keystore
Codeur ZZ
la source
6
Génial, donc la signature de l'apk sera la même? Juste le mot de passe va changer? C'est aussi ce dont j'ai besoin. Choisissez un mauvais mot de passe, vous devez maintenant le changer.
Matthew Rudy
6
La signature ne changera pas, car l'application n'est PAS signée avec le magasin de clés, mais avec le certificat que vous conservez dans le magasin de clés.
Marcin Orlowski
keyName est le nom de l'alias, par exemple. -alias Dipu
ılǝ
18
Pour supprimer le mot de passe de la clé, il faut définir le même mot de passe que pour le magasin de clés, peut être utile pour quelqu'un ;-)
Betlista
Est-ce que cela s'applique .jksaussi? Mon fichier de clés est .jks généré par Android Studio
81

[Comment puis-je] Changer le mot de passe pour pouvoir le partager avec les autres et les laisser signer

Utilisation de keytool:

keytool -storepasswd -keystore /path/to/keystore
Enter keystore password:  changeit
New keystore password:  new-password
Re-enter new keystore password:  new-password
Pascal Thivent
la source
cela change-t-il également le mot de passe de la clé?
over_optimistic
4
Non. Keystore est une chose, les mots de passe (note plurielle) en est une autre. Utilisez keytool -keypasswd -alias <KeyName> -keystore my.keystorepour changer le mot de passe de la clé privée<KeyName>
Marcin Orlowski
5
après entrer keystore passer -changeit il donne l' erreur erreur keytool: java.io.IOException: Keystore a été falsifié, ou mot de passe incorrect
Dilip
@Dipu, je reçois la même erreur. Avez-vous réussi à résoudre cela
JiteshW
Vous pouvez vérifier que le mot de passe a changé (en cas de doute) en réexécutant exactement la même commande. Après avoir demandé le mot de passe existant, si vous entrez un mot de passe incorrect, il indiquera que vous avez entré un mot de passe incorrect ou que le fichier a été falsifié et abandonné.
ArtOfWarfare
48

Modification du mot de passe du magasin de clés

$ keytool -storepasswd -keystore keystorename
Enter keystore password:  <old password>
New keystore password: <new password>
Re-enter new keystore password: <new password>

Modification du mot de passe d'alias de fichier de clés

$keytool -keypasswd -keystore keystorename -alias aliasname
Enter keystore password:  
New key password for <aliasname>: 
Re-enter new key password for <aliasname>:

Remarque:

**Keystorename**: name of your keystore(with path if you are indifferent folder) 
**aliasname**: alias name you used when creating (if name has space you can use \) 
for example: $keytool -keypasswd -keystore keystorename -alias stop\ watch
user98239820
la source
1
Ça marche merci! Une dernière chose que je veux ajouter pour changer le nom d'alias que je voulais et que j'ai obtenu d'un forum. keytool -changealias -keystore my.keystore -alias my_name -destalias my_new_name
Jugal Panchal
Lors de la modification du mot de passe d'alias, j'obtiens: UnrecoverableKeyException: impossible de récupérer la clé. Des suggestions?
Foo
@Foo avez-vous déjà compris ce problème? Je reçois la même erreur
Ryan Newman
3
Changer le mot de passe de l'alias du magasin de clés ce que vous avez montré ne fonctionne pas, il ne demandera pas de nouveau mot de passe pour <aliasname>. Il demande le mot de passe existant pour <aliasname> qui n'est pas connu dans ce cas.
Shivaraj Patil
Je reçois toujours Impossible de récupérer la clé à l'étape: Nouveau mot de passe de clé pour <aliasname>: Des idées? Je viens de créer la clé dans Android Studio, téléchargée, réalisé que je devais mettre à jour quelque chose et maintenant cela ne fonctionne pas: /
Dewald Els
22

Pour modifier le mot de passe d'une clé à l' myaliasintérieur du magasin de clés mykeyfile:

keytool -keystore mykeyfile -keypasswd -alias myalias
OriolJ
la source
Qu'est-ce que la "clé intérieure"?
IgorGanapolsky
5
Désolé pour ma mauvaise explication. Vous pouvez modifier le mot de passe du magasin de clés ou le mot de passe de l'une des clés que vous avez stockées dans le magasin de clés. C'est ce que je veux dire par "clé intérieure".
OriolJ
9

Si le magasin de clés contient d'autres entrées de clé avec un mot de passe différent, vous devez également les modifier ou vous pouvez isoler votre clé dans un magasin de clés différent à l'aide de la commande ci-dessous,

keytool -importkeystore  -srckeystore mystore.jck -destkeystore myotherstore.jks -srcstoretype jceks
-deststoretype jks -srcstorepass mystorepass -deststorepass myotherstorepass -srcalias myserverkey
-destalias myotherserverkey -srckeypass mykeypass -destkeypass myotherkeypass
Ishan Liyanage
la source
7

Il y a tellement de réponses ici, mais si vous essayez de changer le mot de passe jks sur un Mac dans Android Studio. Voici les étapes les plus simples que j'ai pu trouver

1) Ouvrez Terminal et cd où se trouve votre .jks

2) keytool -storepasswd -new NEWPASSWORD -keystore YOURKEYSTORE.jks

3) entrez votre mot de passe actuel

pourquoi
la source
5

KeyStore Explorer est un remplacement d'interface graphique open source pour les utilitaires de ligne de commande Java keytool et jarsigner. KeyStore Explorer présente leurs fonctionnalités, et plus encore, via une interface utilisateur graphique intuitive.

  1. Ouvrir un magasin de clés existant
  2. Outils -> Définir le mot de passe KeyStore
Membranes Rafael
la source
meilleure solution! Mieux que d'écrire sur le terminal. En utilisant ce logiciel, j'ai pu changer les mots de passe et ajouter de nouvelles paires de clés.
Je le
4

Pour une modification programmatique complète (par exemple, installer le programme) et aucune invite

#!/bin/bash -eu

NEWPASSWORD=${1}
OLDPASSWORD=${2}

keytool -storepasswd -new "${NEWPASSWORD}" \
  -storepass "${OLDPASSWORD}" \
  -keystore /path/to/keystore

Divulgation complète: Je ne recommande PAS d'exécuter cette ligne de commande dans un shell, car les anciens et nouveaux mots de passe seront enregistrés dans l'historique du shell et visibles dans la console.

Alexander Pogrebnyak
la source