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

Keytool est un utilitaire de ligne de commande qui vous permet de gérer/stocker des clés cryptographiques et des certificats.

Si Java est installé sur votre système, vous pouvez utiliser la commande keytool pour importer un certificat CA, répertorier les certificats, créer des certificats auto-signés, stocker des phrases secrètes et des clés publiques/privées, et bien d’autres choses encore.

Confus? Ne vous inquiétez pas ; Je vais l’expliquer en termes plus simples au fur et à mesure de votre lecture.

Notez que j’utilise Linux pour tester les commandes et vous en expliquer un peu plus avec des exemples.

Vous pouvez également utiliser les commandes Keytool sous Windows et macOS.

Qu’est-ce qu’une commande Keytool ?

Il s’agit d’un utilitaire de gestion de clés et de certificats. Il vous permet de stocker des paires de clés privées/publiques, qui servent généralement à vérifier/authentifier l’accès aux services.

Compte tenu du titre de cet article, on peut supposer que la commande est principalement utilisée par les administrateurs système et les développeurs.

Pour la plupart, oui, mais un utilisateur peut faire preuve de créativité avec la commande keytool pour stocker des phrases secrètes et des clés secrètes à des fins d’authentification, de chiffrement et de déchiffrement. Donc, si vous êtes curieux, vous devriez l’essayer sur votre système.

Si vous êtes nouveau dans le concept des clés cryptographiques, vous voudrez peut-être consulter notre article sur le chiffrement des données avant d’essayer les commandes keytool.

De plus, consulter les exemples de commandes OpenSSL peut également vous donner une idée de la différence et de ce que vous pouvez faire avec chacun d’entre eux.

Créer un certificat auto-signé

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

Contrairement à un certificat SSL que vous achetez, un certificat auto-signé n’est utilisé qu’à des fins de développement/test pour utiliser une connexion sécurisée.

Vous pouvez en générer un en utilisant la syntaxe de commande keytool mentionnée ci-dessus. Par exemple, voici à quoi cela ressemble :

keytool -genkeypair -alias toptips.fr -keypass passforkeystore -validity 365 -storepass passforkeystore

Vous pouvez utiliser n’importe quel nom pour l’alias ; J’utilise toptips.fr comme texte d’espace réservé. Vous pouvez personnaliser la validité et spécifier un mot de passe pour le Keystore en remplaçant « passforkeystore » dans la commande ci-dessus.

Notez qu’un seul mot de passe est pris en charge pour les KeyStores PKCS12. Cependant, il s’agit d’un type de magasin de clés pratique qui n’est pas spécifique à Java.

Si vous avez besoin de deux mots de passe différents pour votre Keystore et le certificat, vous pouvez indiquer explicitement à la commande keytool d’utiliser une autre interface.

Vous pouvez en savoir plus à ce sujet dans sa documentation officielle.

Une fois que vous avez procédé à la création, il vous demandera des détails supplémentaires pour l’authenticité. Voici à quoi cela devrait ressembler :

What is your first and last name?
  [Unknown]:  Ankush
What is the name of your organizational unit?
  [Unknown]:  toptips.fr
What is the name of your organization?
  [Unknown]:  toptips.fr
What is the name of your City or Locality?
  [Unknown]:  Bhubaneswar
What is the name of your State or Province?
  [Unknown]:  Odisha
What is the two-letter country code for this unit?
  [Unknown]:  91
Is CN=Ankush, OU=toptips.fr, O=toptips.fr, L=Bhubaneswar, ST=Odisha, C=91 correct?
  [no]:  yes

Créer un magasin de clés Java et une paire de clés

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

Générer un Java Keystore et importer un certificat

Assurez-vous d’avoir un certificat valide ou d’en avoir généré un plus tôt ; une fois cela fait, vous pouvez l’importer et générer un Java Keystore.

keytool -importcert -file test.crt -keystore truststore.jks -alias toptips.fr

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

Vous pouvez rapidement générer une paire de clés (disons avec le nom « ca ») en utilisant la commande suivante :

keytool -alias ca -dname CN=CA -genkeypair

Créer une chaîne de certificats signés

Supposons que vous ayez créé des paires de clés ca et ca1. Vous pouvez créer une chaîne de certificats signés où ca signera ca1 avec 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 de clés ca1 et ca2, où ca1 signera ca2.

Importation d’un certificat

Si vous souhaitez importer un certificat à partir d’un fichier disponible, voici ce que vous pouvez faire :

keystool -import -alias toptips.fr -file geekflareserver.cer

Créer une demande de signature de certificat (CSR) pour le keystore existant

Considérant que vous avez déjà créé un Keystore, vous pouvez générer un CSR.

keytool -certreq -keyalg rsa -keystore keystore.jks -alias server -file toptips.fr.csr

Répertorier les certificats stockés dans Java Keystore

Un magasin de clés peut avoir plusieurs entrées de certificats. En supposant que nous vérifions la liste des certificats dans la base de données « keystore.jks », voici ce que nous devons saisir :

keytool -v -list -keystore keystore.jks

La sortie pour cela ressemblera à ceci :

keytool -v -list -keystore keystore.jks
Enter keystore password:  
Keystore type: PKCS12
Keystore provider: SUN

Your keystore contains 2 entries

Alias name: geekflarecert
Creation date: 16-Nov-2022
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Ankush, OU=Geek, O=toptips.fr, L=Bhubaneswar, ST=od, C=91
Issuer: CN=Ankush, OU=Geek, O=toptips.fr, L=Bhubaneswar, ST=od, C=91
Serial number: a0b9a99
Valid from: Wed Nov 16 09:42:37 IST 2022 until: Sat Nov 13 09:42:37 IST 2032
Certificate fingerprints:
 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
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

Vérifier le contenu d’un seul certificat

Considérant que vous avez déjà un certificat généré, vous pouvez en savoir plus à ce sujet en utilisant ce qui suit :

keytool -v -printcert -file server.crt

Afficher les certificats dans un keystore Java

Vous pouvez répertorier tous les certificats d’une base de données Keystore. Voici à quoi ressemble la commande :

keytool -v -list -keystore keystore.jks

Afficher le keystore à l’aide d’un alias et d’un keystore

Si vous souhaitez vérifier un Keystore à l’aide de son nom d’alias que vous avez défini lors de sa création, saisissez ce qui suit :

keytool -v -list -keystore keystore.jks -alias geekflareserver

Répertorier les certificats dans KeyStore

Si vous souhaitez vérifier les certificats stockés dans le Keystore par défaut, utilisez la commande :

keytool -list -storepass passforkeystore

Vous devez remplacer « passforkeystore » par le mot de passe que vous avez défini.

Afficher les informations sur le certificat

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

Voici à quoi ça ressemble :

keytool -list -v -alias toptips.fr -storepass passforkeystore

Afficher le certificat au format PEM

PEM est l’un des formats les plus courants pour les certificats et les clés cryptographiques. Si vous souhaitez vérifier un certificat avec PEM, saisissez ce qui suit :

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

Modifier un mot de passe Java Keystore

Si vous avez déjà créé un mot de passe pour le Java Keystore, vous pouvez modifier le mot de passe à l’aide de la commande :

keytool -delete -alias toptips.fr -keystore keystore.jks

Supprimer un certificat de Java Keystore

Vous pouvez spécifier le Java Keystore et son alias pour le supprimer. Par exemple:

keytool -delete -alias toptips.fr -keystore keystore.jks

Explorez la commande et obtenez de l’aide

La commande a plusieurs arguments et extensions pour faire beaucoup de choses. Selon votre cas d’utilisation, vous pouvez ou non avoir besoin de tous les utiliser.

Ainsi, si vous souhaitez approfondir les options de commande, vous pouvez toujours saisir :

keytool -help

Dans les deux cas, si vous utilisez un terminal Linux, je vous recommande de lire la page man (manuel) avec cette commande :

man keytool

Avec la commande man, vous pouvez obtenir tous les détails dont vous avez besoin sur la commande keytool.

Alors, gardez votre super pouvoir pour apprendre tout ce que vous pouvez à ce sujet !

Emballer

Le chemin des fichiers et d’autres options de personnalisation peut être légèrement différent de la plate-forme que vous utilisez. Vous pouvez également vous référer à la documentation d’Oracle pour les options standardisées.

Keytool est un excellent outil pour une gamme de tâches. Testez-le et voyez ce que vous pouvez en faire !

Vous pouvez également explorer certaines commandes Linux pour maintenir et maintenir le fonctionnement optimal des systèmes.