Gestion des certificats SSL avec Java Keystore
Ce guide est destiné à vous aider à signer des applications / applets Java sous Tomcat.
Commande keystore et une paire de clés
Pour gérer les certificats SSL, utilisez la commande : keystore. Cela vous permet de générer une paire de clés pour votre certificat SSL.
keytool -genkey -alias test -keyalg RSA -keystore test.jks -keysize 3072
Saisissez le mot de passe pour votre keystore. Saisissez les données de votre organisation qui seront utilisées dans la CSR :
What is your first and last name?
[Unknown]: Test Test
What is the name of your organizational unit?
[Unknown]: Unit
What is the name of your organization?
[Unknown]: Test corp.
What is the name of your City or Locality?
[Unknown]: Some City
What is the name of your State or Province?
[Unknown]: Some State
What is the two-letter country code for this unit?
[Unknown]: US
Is CN=Test Test, OU=Unit, O=Test corp., L=Some City, ST=Some State, C=US correct?
[no]: yes
Générez une CSR
Créez le fichier Certificate Signing Request à l'aide de la commande suivante :
keytool -certreq -alias test -keystore test.jks -file test.csr
Les informations sur le demandeur ont été renseignées lors de la création de la paire de clés dans l'étape précédente, donc KeyTool n'en demande plus.
Le paramètre -file test.csr exporte le code CSR vers le fichier. Vous pouvez l'ignorer et afficher le contenu du fichier CSR à l'écran : copiez/collez la totalité du contenu du fichier, y compris „-----BEGIN CERTIFICATE REQUEST-----” et „-----END CERTIFICATE dans le formulaire de demande de certificat de SSLmarket.
Importer un certificat émis dans le keystore
Le certificat est envoyé par mail (vous pouvez également le trouver à tout moment sur votre compte à www.sslmarket.fr/login/) et doit être importé dans le Keystore.
Lors de l'importation, Keystore n'accepte que des certificats approuvés d'autorité de certification émettrice déjà présente dans le keystore. Cela signifie que les certificats doivent être importés dans l'ordre inverse - du certificat racine au certificat de serveur.
Importez le certificat à l'aide de la commande suivante :
keytool -import -trustcacerts -alias test -file test.txt -keystore test.jks
Error: Failed to establish chain from reply
Si votre système affiche l'erreur : keytool error: java.lang.Exception: Failed to establish chain from reply : il vous manque le certificat CA/intermédiaire dans le keystore.
Pour le résoudre :
-
1) importez les certificats d'une manière inverse - les certificats CA d'abord :
keytool -import -trustcacerts -alias root -file intermediate.crt -keystore test.jks
-
2) OU importez le certificat au format PKCS#7 (P7B). Utilisez le fichier "linux_cert+ca.pem" que vous avez reçu par email de SSLmarket et convertissez-le au format P7B - utilisez la commande suivante :
openssl crl2pkcs7 -nocrl -certfile linux_cert+ca.pem -out linux_cert+ca.p7b
et ensuite, importez le fichier dans le keystore :
keytool -import -trustcacerts -alias test -file linux_cert+ca.p7b -keystore test.jks
Résultat : Certificate reply was installed in keystore : signifie Opération réussie. Par contre, le résultat : Public keys in reply and keystore don't match signifie qu'il n'y a pas de certificat de serveur dans le fichier .p7b, mais seulement l'intermédiaire - vous avez probablement utilisé le fichier .p7b de notre courrier. -
3) éventuellement, utilisez le format PKCS#12 (PFX) contenant tous les éléments nécessaires :
keytool -importkeystore -srckeystore pkcs12file.p12 -srcstoretype pkcs12 -destkeystore test.jks -deststoretype JKS
Cette méthode est la plus rapide, mais si vous avez généré la CSR directement dans le keystore, il est inutile (vous devriez l'exporter).
Outils avec la GUI
Si vous ne souhaitez pas travailler avec le keystore, la ligne de commande et le terminal, vous pouvez utiliser un des outils à l'interface graphique.
Les deux programmes mentionnés peuvent créer ou ouvrir un fichier dans le keystore, générer une CSR et importer un certificat émis (réponse de l'AC). La procédure est la même que pour le terminal ci-dessus ; la seule différence est l'interface graphique.
Portecle
Portecle est un programme gratuit en Java qui permet de gérer le keystore dans une interface graphique. Il est compatible avec diverses plates-formes (Linux, MacOS, Windows).
KeyStore Explorer
KeyStore Explorer fonctionne comme le programme précédent et il est également multi-plateforme.
La logique des programmes mentionnés est similaire à celle du keystore ; donc finalement vous n'économisez pas le travail.
Nous sommes désolés que vous n'ayez pas trouvé les informations que vous recherchiez.
Aidez-nous à améliorer cet article. Vous cherchez autre chose ? N'hésitez pas à nous écrire.