17 exemples de commandes Keytool à connaître en tant qu’administrateur système et développeur



Découverte de Keytool : Gestion des Clés et Certificats

Keytool est un outil en ligne de commande conçu pour la gestion et le stockage de clés cryptographiques et de certificats numériques.

Si l’environnement Java est installé sur votre machine, l’utilitaire keytool vous offre la possibilité d’importer des certificats d’autorité de certification (CA), de consulter la liste des certificats existants, de générer des certificats auto-signés, de sauvegarder des mots de passe et des clés publiques/privées, et bien d’autres opérations.

Ce concept vous semble complexe ? Pas d’inquiétude, nous allons décortiquer cela ensemble de manière simple et progressive.

Notez que les exemples et les explications fournis ici sont basés sur un environnement Linux, mais les commandes Keytool sont également compatibles avec Windows et macOS.

Qu’est-ce qu’une commande Keytool ?

Keytool est avant tout un gestionnaire de clés et de certificats. Il permet de manipuler les paires de clés privées/publiques, souvent utilisées pour valider et authentifier l’accès à divers services.

Comme son nom le suggère, cet outil est principalement utilisé par les administrateurs de systèmes et les développeurs.

Cependant, un utilisateur lambda peut également exploiter keytool pour stocker des phrases secrètes et des clés pour l’authentification, le chiffrement ou le déchiffrement. N’hésitez pas à expérimenter avec cet outil si vous êtes curieux !

Si les clés cryptographiques vous sont encore étrangères, il serait judicieux de consulter un article sur le chiffrement de données avant de vous plonger dans les commandes Keytool.

De même, se familiariser avec les commandes OpenSSL pourrait vous aider à comprendre les différences et les cas d’usage de ces deux outils.

Création d’un certificat auto-signé

keytool -genkeypair -alias <alias> -keypass <keypass> -validity <validity> -storepass <storepass>

Contrairement aux certificats SSL commerciaux, un certificat auto-signé sert principalement au développement et aux tests, pour établir une connexion sécurisée dans un environnement non-production.

Vous pouvez en générer un en utilisant la syntaxe de commande keytool ci-dessus. Voici un exemple concret :

keytool -genkeypair -alias mondomaine.fr -keypass motdepassecle -validity 365 -storepass motdepassecle

L’alias peut être librement choisi; ici, ‘mondomaine.fr’ est un exemple. Ajustez la validité et le mot de passe du keystore en remplaçant « motdepassecle » par votre valeur.

Notez que les Keystores de type PKCS12 ne supportent qu’un seul mot de passe. Il s’agit d’un format de stockage de clés polyvalent, indépendant de Java.

Si vous avez besoin de mots de passe distincts pour votre Keystore et votre certificat, vous devrez configurer keytool pour utiliser une interface alternative.

La documentation officielle de keytool contient plus de détails sur ce sujet.

Une fois la création lancée, keytool vous demandera des informations supplémentaires pour l’authentification, comme ceci :

Quel est votre prénom et nom?
  [Inconnu]:  VotreNom
Quel est le nom de votre unité organisationnelle?
  [Inconnu]:  VotreUnite
Quel est le nom de votre organisation?
  [Inconnu]:  VotreOrganisation
Quel est le nom de votre ville ou localité?
  [Inconnu]:  VotreVille
Quel est le nom de votre état ou province?
  [Inconnu]:  VotreEtat
Quel est le code pays à deux lettres pour cette unité?
  [Inconnu]:  FR
CN=VotreNom, OU=VotreUnite, O=VotreOrganisation, L=VotreVille, ST=VotreEtat, C=FR est-il correct?
  [non]:  oui

Création d’un magasin de clés Java et d’une paire de clés

keytool -genkeypair -keyalg RSA -keysize 2048 -keystore monkeystore.jks -alias monaliasjava -validity 3650

Créer un Keystore Java et y importer un certificat

Assurez-vous d’avoir un certificat valide (ou d’en avoir généré un précédemment). Une fois cette étape validée, vous pouvez l’importer et générer votre Keystore Java.

keytool -importcert -file moncertificat.crt -keystore monmagasindeconfiance.jks -alias mondomaine.fr

Générer une paire de clés dans le magasin de clés par défaut avec un sujet

Vous pouvez rapidement créer une paire de clés (par exemple nommée « ca ») en utilisant cette commande :

keytool -alias ca -dname CN=CA -genkeypair

Création d’une chaîne de certificats signés

Supposons que vous ayez généré deux paires de clés, « ca » et « ca1 ». Pour créer une chaîne où « ca » signe « ca1 », utilisez les commandes suivantes :

keytool -alias ca1 -certreq
keytool -alias ca -gencert -ext san=dns:ca1
keytool -alias ca1 -importcert

Vous pouvez compléter la chaîne avec deux autres paires, « ca1 » et « ca2 », où « ca1 » signera « ca2 ».

Importation d’un certificat existant

Si vous souhaitez importer un certificat à partir d’un fichier, voici comment procéder :

keytool -import -alias mondomaine.fr -file moncertificatserveur.cer

Créer une requête de signature de certificat (CSR) pour un Keystore existant

Si vous avez déjà un Keystore, vous pouvez générer un CSR.

keytool -certreq -keyalg rsa -keystore monkeystore.jks -alias serveur -file mondomaine.fr.csr

Affichage des certificats stockés dans un Keystore Java

Un Keystore peut contenir plusieurs certificats. Pour consulter la liste des certificats d’une base de données, disons « monkeystore.jks », entrez la commande suivante :

keytool -v -list -keystore monkeystore.jks

La sortie ressemblera à ceci :

keytool -v -list -keystore monkeystore.jks
Saisissez le mot de passe du magasin de clés :  
Type de magasin de clés : PKCS12
Fournisseur de magasin de clés : SUN

Votre magasin de clés contient 2 entrées

Nom de l'alias : monaliascertif
Date de création : 16-nov.-2022
Type d'entrée : PrivateKeyEntry
Longueur de la chaîne de certificats : 1
Certificat[1] :
Propriétaire : CN=VotreNom, OU=VotreDepartement, O=VotreEntreprise, L=VotreVille, ST=VotreRegion, C=FR
Émetteur : CN=VotreNom, OU=VotreDepartement, O=VotreEntreprise, L=VotreVille, ST=VotreRegion, C=FR
Numéro de série : a0b9a99
Valide du : mer. 16 nov. 09:42:37 CET 2022 au : sam. 13 nov. 09:42:37 CET 2032
Empreintes digitales du certificat :
	 SHA1 : 23:7C:65:A7:A6:84:18:F8:45:04:92:DF:D4:BB:0F:91:6D:A5:C5:BE
	 SHA256 : C0:25:ED:B8:CF:1A:E6:E1:C5:75:A8:10:8F:CD:BE:42:26:96:9C:9A:FA:74:65:07:71:06:9A:2C:F5:80:FE:7F
Nom de l'algorithme de signature : SHA256withRSA
Algorithme de la clé publique du sujet : clé RSA 2048 bits
Version : 3

Vérification du contenu d’un certificat

Avec un certificat existant, vous pouvez obtenir des détails en utilisant la commande suivante :

keytool -v -printcert -file moncertificat.crt

Affichage de tous les certificats d’un Keystore Java

Pour lister tous les certificats dans une base de données Keystore, utilisez la commande :

keytool -v -list -keystore monkeystore.jks

Afficher un Keystore en utilisant un alias

Pour vérifier un Keystore en utilisant l’alias que vous avez défini lors de sa création, entrez la commande ci-dessous :

keytool -v -list -keystore monkeystore.jks -alias monaliaserveur

Lister les certificats dans un KeyStore

Pour consulter les certificats stockés dans le Keystore par défaut, utilisez cette commande :

keytool -list -storepass votremotdepasse

Remplacez « votremotdepasse » par le mot de passe que vous avez défini.

Affichage des détails d’un certificat

Pour vérifier les détails d’un seul certificat, vous pouvez utiliser son alias sans spécifier la base de données Keystore.

Voici comment faire :

keytool -list -v -alias mondomaine.fr -storepass votremotdepasse

Affichage d’un certificat au format PEM

PEM est un format courant pour les certificats et les clés. Pour vérifier un certificat au format PEM, utilisez la commande :

keytool -v -printcert -file mondomaine.fr.crt -rfc

Modification d’un mot de passe Java Keystore

Si vous avez déjà créé un mot de passe pour votre Keystore, vous pouvez le modifier en utilisant :

keytool -delete -alias mondomaine.fr -keystore monkeystore.jks

Supprimer un certificat d’un Java Keystore

Pour supprimer un certificat, spécifiez son Keystore et son alias. Par exemple :

keytool -delete -alias mondomaine.fr -keystore monkeystore.jks

Exploration de la commande et obtention d’aide

La commande Keytool offre de nombreux arguments et options pour réaliser diverses opérations. Selon votre cas d’utilisation, vous n’aurez peut-être pas besoin de toutes les options.

Pour explorer davantage les options de la commande, tapez :

keytool -help

Si vous utilisez un terminal Linux, je vous recommande également de consulter la page de manuel (man) avec la commande suivante :

man keytool

La commande ‘man’ vous donnera une description détaillée de toutes les fonctionnalités de Keytool.

Développez vos connaissances et tirez le meilleur parti de cet outil !

En résumé

Le chemin des fichiers et certaines options de personnalisation peuvent légèrement varier selon votre système d’exploitation. Vous pouvez également consulter la documentation officielle d’Oracle pour obtenir des informations complètes et standardisées.

Keytool est un outil puissant pour de nombreuses tâches. N’hésitez pas à l’explorer et découvrez tout ce qu’il peut faire !

Vous pouvez également explorer d’autres commandes Linux pour optimiser la gestion de vos systèmes.