Comment accéder à un fichier de clés Java non protégé par mot de passe ou modifier le mot de passe?

121

J'essaie d'importer un certificat de confiance dans le keystore Java cacerts , mais j'ai un problème. J'ai essayé de lister les certificats de confiance existants et il semble que le keystore n'est pas protégé par mot de passe.

$ keytool -list -keystore cacerts
Enter keystore password:

*****************  WARNING WARNING WARNING  *****************
* The integrity of the information stored in your keystore  *
* has NOT been verified!  In order to verify its integrity, *
* you must provide your keystore password.                  *
*****************  WARNING WARNING WARNING  *****************

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 76 entries

J'ai essayé d'importer un certificat de confiance:

$ keytool -importcert -alias "JiraCert" -file /root/c9ssl.crt -keystore /etc/java-6-sun/security/cacerts
Enter keystore password:  
Keystore password is too short - must be at least 6 characters
Enter keystore password:  
Keystore password is too short - must be at least 6 characters
Enter keystore password:  
Keystore password is too short - must be at least 6 characters
Too many failures - try later

J'ai également essayé de changer le mot de passe de "aucun" à quelque chose:

$ keytool -storepasswd -keystore cacerts.back
Enter keystore password:
Keystore password is too short - must be at least 6 characters
Enter keystore password:
Keystore password is too short - must be at least 6 characters
Enter keystore password:
Keystore password is too short - must be at least 6 characters
Too many failures - try later
Eslam
la source

Réponses:

206

ce qui signifie que le keystore de cacerts n'est pas protégé par mot de passe

C'est une fausse hypothèse. Si vous lisez plus attentivement, vous constaterez que la liste a été fournie sans vérifier l'intégrité du fichier de clés car vous n'avez pas fourni le mot de passe. La liste ne nécessite pas de mot de passe, mais votre keystore a définitivement un mot de passe, comme indiqué par:

Afin de vérifier son intégrité, vous devez fournir le mot de passe de votre keystore.

Le mot de passe cacerts par défaut de Java est "changeit", sauf si vous êtes sur un Mac, où il est "changeme" jusqu'à un certain point. Apparemment, depuis Mountain Lion (basé sur des commentaires et une autre réponse ici), le mot de passe pour Mac est maintenant aussi "changeit", probablement parce qu'Oracle gère maintenant la distribution pour la JVM Mac également.

Ryan Stewart
la source
Merci! Je ne pouvais pas comprendre pourquoi le mot de passe était !!
Jesse Barnum
2
Oui merci. Quel terrible mot de passe par défaut. Je ne savais pas non plus ce que c'était. Je viens de supprimer le fichier cacerts et de le remplacer par le mien.
HeyWatchThis
3
Comme le dit datasmid ci-dessous, le mot de passe Mac si vous utilisez Mountain Lion est également "changeit"
Niro
19
"Le mot de passe cacerts par défaut de Java est" changeit "": +1000 si je pouvais! Merci Stackoverflow!
Neil Vass
55

Le mot de passe du keystore par défaut est: "changeit". J'ai fonctionné selon mes commandes que vous avez entrées ici, pour l'importation du certificat. J'espère que vous avez déjà résolu votre problème.

GeoKlar
la source
4

Mac Mountain Lion a le même mot de passe maintenant qu'il utilise Oracle.

bbaassssiiee
la source
0

Entrer dans un keystore Java non protégé par mot de passe et changer le mot de passe peut être fait à l'aide du langage de programmation Java lui-même.

Cet article contient le code pour cela:

thetechawesomeness.ideasmatter.info

Oleksii Kyslytsyn
la source