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.
Sommario:
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.