Je viens d'annoncer le nouveau cours Learn Spring , axé sur les principes de base de Spring 5 et Spring Boot 2:
>> VOIR LE COURS1. Vue d'ensemble
Dans ce court tutoriel, nous allons présenter la commande keytool . Nous allons apprendre à utiliser keytool pour créer un nouveau certificat et vérifier les informations de ce certificat.
2. Qu'est-ce que keytool?
Java inclut l' utilitaire keytool dans ses versions. Nous l'utilisons pour gérer les clés et les certificats et les stocker dans un keystore. La commande keytool nous permet de créer des certificats auto-signés et d'afficher des informations sur le keystore.
Dans les sections suivantes, nous allons passer en revue différentes fonctionnalités de cet utilitaire.
3. Création d'un certificat auto-signé
Tout d'abord, créons un certificat auto-signé qui pourrait être utilisé pour établir une communication sécurisée entre les projets dans notre environnement de développement, par exemple.
Afin de générer le certificat , nous allons ouvrir une invite de ligne de commande et utiliser la commande keytool avec l' option -genkeypair :
keytool -genkeypair -alias -keypass -validity -storepass
Apprenons-en plus sur chacun de ces paramètres:
- alias - le nom de notre certificat
- keypass - le mot de passe du certificat. Nous aurons besoin de ce mot de passe pour avoir accès à la clé privée de notre certificat
- validité - le temps (en jours) de validité de notre certificat
- storepass - le mot de passe du keystore. Ce sera le mot de passe du keystore si le magasin n'existe pas
Par exemple, générons un certificat nommé «cert1» qui a une clé privée de «pass123» et est valide pendant un an. Nous spécifierons également «stpass123» comme mot de passe du keystore:
keytool -genkeypair -alias cert1 -keypass pass123 -validity 365 -storepass stpass123
Après avoir exécuté la commande, il vous demandera des informations que nous devrons fournir:
What is your first and last name? [Unknown]: Name What is the name of your organizational unit? [Unknown]: Unit What is the name of your organization? [Unknown]: Company What is the name of your City or Locality? [Unknown]: City What is the name of your State or Province? [Unknown]: State What is the two-letter country code for this unit? [Unknown]: US Is CN=Name, OU=Unit, O=Company, L=City, ST=State, C=US correct? [no]: yes
Comme mentionné, si nous n'avons pas créé le keystore auparavant, la création de ce certificat le créera automatiquement.
Nous pourrions également exécuter l' option -genkeypair sans paramètres. Si nous ne les fournissons pas dans la ligne de commande et qu'ils sont obligatoires, nous serons invités à les indiquer.
Notez qu'il est généralement conseillé de ne pas fournir les mots de passe ( -keypass ou -storepass ) sur la ligne de commande dans les environnements de production .
4. Liste des certificats dans le keystore
Ensuite, nous allons apprendre à afficher les certificats stockés dans notre magasin de clés. Pour cela, nous utiliserons l' option -list :
keytool -list -storepass
La sortie de la commande exécutée affichera le certificat que nous avons créé:
Keystore type: JKS Keystore provider: SUN Your keystore contains 1 entry cert1, 02-ago-2020, PrivateKeyEntry, Certificate fingerprint (SHA1): 0B:3F:98:2E:A4:F7:33:6E:C4:2E:29:72:A7:17:E0:F5:22:45:08:2F
Si nous voulons obtenir les informations pour un certificat concret , nous devons simplement inclure l' option -alias dans notre commande. Pour obtenir plus d'informations que celles fournies par défaut, nous ajouterons également l' option -v (verbose):
keytool -list -v -alias -storepass
Cela nous fournira toutes les informations relatives au certificat demandé:
Alias name: cert1 Creation date: 02-ago-2020 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=Name, OU=Unit, O=Company, L=City, ST=State, C=US Issuer: CN=Name, OU=Unit, O=Company, L=City, ST=State, C=US Serial number: 11d34890 Valid from: Sun Aug 02 20:25:14 CEST 2020 until: Mon Aug 02 20:25:14 CEST 2021 Certificate fingerprints: MD5: 16:F8:9B:DF:2C:2F:31:F0:85:9C:70:C3:56:66:59:46 SHA1: 0B:3F:98:2E:A4:F7:33:6E:C4:2E:29:72:A7:17:E0:F5:22:45:08:2F SHA256: 8C:B0:39:9F:A4:43:E2:D1:57:4A:6A:97:E9:B1:51:38:82:0F:07:F6:9E:CE:A9:AB:2E:92:52:7A:7E:98:2D:CA Signature algorithm name: SHA256withDSA Subject Public Key Algorithm: 2048-bit DSA key Version: 3 Extensions: #1: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: A1 3E DD 9A FB C0 9F 5D B5 BE 2E EC E2 87 CD 45 .>.....].......E 0010: FE 0B D7 55 ...U ] ]
5. Autres fonctionnalités
Outre les fonctionnalités que nous avons déjà vues, de nombreuses fonctionnalités supplémentaires sont disponibles dans cet outil.
Par exemple, nous pouvons supprimer le certificat que nous avons créé à partir du keystore:
keytool -delete -alias -storepass
Un autre exemple est que nous pourrons même changer l'alias d'un certificat :
keytool -changealias -alias -destalias -keypass -storepass
Enfin, pour obtenir plus d'informations sur l'outil, nous pouvons demander de l'aide via la ligne de commande:
keytool -help
6. Conclusion
Dans ce tutoriel rapide, nous avons appris un peu plus sur l' utilitaire keytool . Nous avons également appris à utiliser certaines fonctionnalités de base incluses dans cet outil.
Fond Java