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)?
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 ).