Il Keytool è uno strumento a riga di comando utilizzato per la gestione dei certificati che consente in particolare la generazione delle chiave privata, della chiave pubblica e del certificato che la contiene.
I certificati vengono memorizzati su File System in un file protetto da password e denominato generalmente come keystore.jks
. Il keystore contiene quindi la chiave privata del proprietario e ogni certificato necessario a completare una catena di fiducia (chain of trust).
Generare la chiave pubblica e privata
Supponiamo di voler generare le chiavi di cifratura e un certificato per l'organizzazione Microsystems Inc. Il comando necessario per questa operazione prevede l'utilizzo dell'opzione -genkey
congiuntamente ad altre opzioni che identificano essenzialmente l'algoritmo da utilizzare e la lunghezza delle chiavi:
keytool -genkey -alias "Microsystems Inc" -keyalg RSA -keystore
keystore.jks -keysize 2048
Il risultato dell'esecuzione del comando è quello di creare un keystore rappresentato dal file keystore.jks
, di aggiungere un'entry identificata dall'alias specificato e generare la chiave pubblica e privata utilizzando l'algoritmo RSA e una lunghezza per entrambe di 2048 bit. Da notare che per default la validità di un certificato è di 90 giorni, per controllare questo valore possiamo riscrivere il comando precedente come:
keytool -genkey -alias "Microsystems Inc" -keyalg RSA -keystore
keystore.jks -validity 360 -keysize 2048
Uno degli standard più utilizzati per la struttura dei certificati è X.509. Il Keytool gestisce certificati X.509 che contengono in generale:
- il nome del richiedente;
- il periodo di validità del certificato;
- il nome dell'autorità che ha rilasciato il certificato;
- un numero di serie;
- la chiave pubblica del richiedente;
- la firma digitale ottenuta tramite la cifratura dell'intero certificato con la chiave privata dell'autorità di certificazione.
Esplorare il keystore
Il Keytool mette a disposizione diversi comandi che consentono di esplorare, gestire ed esportare il contenuto di un keystore. Ad esempio volendo visualizzare tutto il contenuto del keystore dopo la sua creazione, digitiamo da riga di comando:
keytool -list -v -keystore keystore.jks
Se invece siamo interessati a una particolare entry:
keytool -list -v -keystore keystore.jks -alias "Microsystems
Inc"
In entrambi i casi, avendo un solo certificato nel keystore, l'output sarà il seguente: