17 Esempi di comandi Keytool da conoscere come amministratore di sistema e sviluppatore

Keytool è un’utilità della riga di comando che consente di gestire/archiviare chiavi e certificati crittografici.

Se il tuo sistema ha Java installato, puoi utilizzare il comando keytool per importare un certificato CA, elencare certificati, creare certificati autofirmati, memorizzare passphrase e chiavi pubbliche/private e fare molte altre cose.

Confuso? Non preoccuparti; Te lo spiegherò in termini più semplici man mano che leggerai.

Nota che io uso Linux per testare i comandi e spiegarti un po’ di più con degli esempi.

Puoi utilizzare i comandi Keytool anche su Windows e macOS.

Cos’è un comando Keytool?

È un’utilità di gestione di chiavi e certificati. Ti consente di memorizzare coppie di chiavi private/pubbliche, che di solito servono per verificare/autenticare l’accesso ai servizi.

Considerando il titolo di questo articolo, si può presumere che il comando sia utilizzato principalmente da amministratori di sistema e sviluppatori.

Per la maggior parte sì, ma un utente può diventare creativo con il comando keytool per memorizzare passphrase e chiavi segrete per scopi di autenticazione, crittografia e decrittografia. Quindi, se sei curioso, dovresti provarlo sul tuo sistema.

Se sei nuovo al concetto di chiavi crittografiche, potresti voler controllare il nostro articolo sulla crittografia dei dati prima di provare i comandi keytool.

Inoltre, controllare gli esempi di comando OpenSSL può anche darti un’idea di come è diverso e cosa puoi fare con ognuno di essi.

Crea un certificato autofirmato

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

A differenza di un certificato SSL che acquisti, un certificato autofirmato viene utilizzato solo a scopo di sviluppo/test per utilizzare una connessione sicura.

Puoi generarne uno usando la sintassi del comando keytool menzionata sopra. Ad esempio, ecco come appare:

keytool -genkeypair -alias winadmin.it -keypass passforkeystore -validity 365 -storepass passforkeystore

Puoi usare qualsiasi nome per l’alias; Uso winadmin.it come testo segnaposto. È possibile personalizzare la validità e specificare una password per il keystore sostituendo “passforkeystore” nel comando precedente.

Si noti che è supportata una sola password per i KeyStore PKCS12. Tuttavia, è un comodo tipo di archivio chiavi che non è specifico di Java.

Se hai bisogno di due password diverse per il tuo archivio chiavi e il certificato, potresti voler dire esplicitamente al comando keytool di usare un’altra interfaccia.

Puoi leggere di più a riguardo nella sua documentazione ufficiale.

Una volta che si procede con la creazione, verranno richiesti ulteriori dettagli per l’autenticità. Ecco come dovrebbe essere:

What is your first and last name?
  [Unknown]:  Ankush
What is the name of your organizational unit?
  [Unknown]:  winadmin.it
What is the name of your organization?
  [Unknown]:  winadmin.it
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=winadmin.it, O=winadmin.it, L=Bhubaneswar, ST=Odisha, C=91 correct?
  [no]:  yes

Crea un archivio chiavi Java e una coppia di chiavi

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

Genera un archivio chiavi Java e importa un certificato

Assicurati di avere un certificato valido o di averne generato uno in precedenza; una volta fatto, puoi importarlo e generare un Java Keystore.

keytool -importcert -file test.crt -keystore truststore.jks -alias winadmin.it

Genera una coppia di chiavi per l’archivio chiavi predefinito con oggetto

Puoi generare rapidamente una coppia di chiavi (diciamo con il nome “ca”) usando il seguente comando:

keytool -alias ca -dname CN=CA -genkeypair

Crea una catena di certificati firmati

Supponiamo di aver creato coppie di chiavi di ca e ca1. Puoi creare una catena di certificati firmati in cui ca firmerà ca1 con i seguenti comandi:

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

Puoi completare la catena con altre due coppie di chiavi ca1 e ca2, dove ca1 firmerà ca2.

Importazione di un certificato

Se desideri importare un certificato da un file disponibile, ecco cosa puoi fare:

keystool -import -alias winadmin.it -file geekflareserver.cer

Creare una richiesta di firma del certificato (CSR) per il keystore esistente

Considerando che hai già creato un Keystore, puoi generare un CSR.

keytool -certreq -keyalg rsa -keystore keystore.jks -alias server -file winadmin.it.csr

Elenca i certificati archiviati nel keystore Java

Un keystore può avere più voci di certificati. Supponendo che stiamo controllando l’elenco dei certificati nel database “keystore.jks”, ecco cosa dobbiamo digitare:

keytool -v -list -keystore keystore.jks

L’output per questo sarà simile a questo:

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=winadmin.it, L=Bhubaneswar, ST=od, C=91
Issuer: CN=Ankush, OU=Geek, O=winadmin.it, 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

Controlla il contenuto di un singolo certificato

Considerando che hai già un certificato generato, puoi verificarne di più utilizzando quanto segue:

keytool -v -printcert -file server.crt

Visualizza i certificati in un archivio chiavi Java

È possibile elencare tutti i certificati da un database Keystore. Ecco come appare il comando:

keytool -v -list -keystore keystore.jks

Visualizza il keystore utilizzando un alias e il keystore

Se vuoi controllare un keystore usando il suo nome alias che hai impostato durante la creazione, digita quanto segue:

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

Elenca i certificati in KeyStore

Se vuoi controllare i certificati archiviati nel keystore predefinito, usa il comando:

keytool -list -storepass passforkeystore

Devi sostituire “passforkeystore” con la password che hai impostato.

Visualizza le informazioni sul certificato

Se è necessario verificare i dettagli di un singolo certificato, è possibile utilizzare il suo alias senza specificare il database keystone.

Ecco come appare:

keytool -list -v -alias winadmin.it -storepass passforkeystore

Visualizza il certificato in formato PEM

PEM è uno dei formati più comuni per certificati e chiavi crittografiche. Se vuoi controllare un certificato con PEM, digita quanto segue:

keytool -v -printcert -file winadmin.it.crt -rfc

Modificare una password dell’archivio chiavi Java

Se hai già creato una password per Java Keystore, puoi modificare la password utilizzando il comando:

keytool -delete -alias winadmin.it -keystore keystore.jks

Elimina un certificato da Java Keystore

È possibile specificare Java Keystore e il relativo alias per eliminarlo. Per esempio:

keytool -delete -alias winadmin.it -keystore keystore.jks

Esplora il comando e ottieni aiuto

Il comando ha diversi argomenti ed estensioni per fare molte cose. A seconda del caso d’uso, potrebbe essere necessario o meno utilizzarli tutti.

Quindi, se vuoi approfondire le opzioni di comando, puoi sempre digitare:

keytool -help

In entrambi i casi, se stai usando un terminale Linux, ti consiglio di leggere la pagina man (manuale) con questo comando:

man keytool

Con il comando man, puoi ottenere tutti i dettagli di cui hai bisogno sul comando keytool.

Quindi, mantieni il tuo superpotere per imparare tutto ciò che puoi su di esso!

Avvolgendo

Il percorso dei file e altre opzioni di personalizzazione potrebbero essere leggermente diversi dalla piattaforma che utilizzi. Puoi fare riferimento alla documentazione di Oracle anche per le opzioni standardizzate.

Keytool è uno strumento eccellente per una vasta gamma di attività. Provalo e vedi cosa puoi fare con esso!

Puoi anche esplorare alcuni comandi Linux per mantenere e mantenere i sistemi in esecuzione in modo ottimale.