web-dev-qa-db-fra.com

Java Keystore PrivateKeyEntry vs trustedCertEntry

Je renouvelle un certificat utilisé par mon cluster Hadoop. Le JKS actuel a une entrée:

Your keystore contains 1 entry

Alias name: myalias
Creation date: Jan 10, 2019
Entry type: PrivateKeyEntry
Certificate chain length: 1

J'essaie de créer un nouveau fichier de clés à partir du nouveau certificat:

keytool -importcert -alias myalias  -file newcertfile.crt -keystore newkeystore.jks

Mais on me demande si je fais confiance à ce certificat (si je dis non, keytool se ferme):

Trust this certificate? [no]:  yes

Et quand je regarde le résultat, ce n'est plus un PrivateKeyEntry mais un trustedCertEntry:

keytool -list -v -keystore newkeystore.jks
...
...
Your keystore contains 1 entry

Alias name: myalias
Creation date: Feb 20, 2019
Entry type: trustedCertEntry
...
...

Qu'est-ce que j'oublie ici? Dois-je simplement utiliser le JKS avec le trustedCertEntry ou existe-t-il un moyen de le faire comme l'ancien JKS (avec PrivateKeyEntry)?

5
yurmix

J'ai finalement compris que je devais également fournir la clé privée (comme Roshith mentionné dans le lien qu'il a fourni).

J'ai donc commencé par créer d'abord un fichier pfx:

openssl pkcs12 -export -out newcertbundle.pfx -inkey myprivate.key -in newcertfile.crt

Et puis converti en jks:

keytool -importkeystore -srckeystore newcertbundle.pfx -srcstoretype PKCS12 -srcstorepass mypass -deststorepass mypass -destkeypass mypass -destkeystore newkeystore.jks

La seule chose que je ne pouvais pas comprendre (mais qui n'était pas trop importante pour moi) était de savoir comment utiliser un alias, donc je suis allé avec un par défaut (quand j'ai essayé d'en spécifier un, j'ai obtenu: l'alias n'existe pas. Ceci est discuté ici ).

4
yurmix