J'ai utilisé les étapes suivantes pour créer un nouveau keystore Java avec une paire de clé privée/publique à utiliser par un serveur Java (interne) avec TLS. Notez que le certificat est auto-signé :
1) Générer la clé avec AES256
openssl genrsa -aes256 -out server.key 1024
2) Générer une demande de certificat pour l'AC
openssl req -x509 -sha256 -new -key server.key -out server.csr
3) Générer une signature personnelle avec une date d'expiration de 10 ans.
openssl x509 -sha256 -days 3652 -in server.csr -signkey server.key -out selfsigned.crt
4) Utilisez un programme comme KeyStoreExplorer pour importer la paire (clé privée et certificat auto-signé) dans un nouveau JKS
Cela fonctionne mais j'aimerais mettre en œuvre la dernière étape sans utiliser d'interface graphique.
Je sais comment importer le certificat auto-signé uniquement :
// create the keystore and import the public key. THIS WILL NOT IMPORT THE PRIVATE KEY SO THE KEYSTORE CAN'T BE USED ON THE SERVER TO MAKE THE TLS CONNECTION
/usr/java/jdk1.6.0_45/bin/keytool -import -alias myservercert -file server.crt -keystore mykeystore.jks
La question est donc la suivante : comment puis-je créer un KeyStore Java et importer à la fois le certificat avec la clé publique et la clé privée sans utiliser une interface graphique ?