- Learn
- Java e sicurezza delle applicazioni
- Java Keytool: esportazione certificati e generazione CSR
Java Keytool: esportazione certificati e generazione CSR
Esportare e visualizzare il certificato a chiave pubblica
La creazione del keystore tramite il comando mostrato nel capitolo precedente ha portato alla generazione di un certificato a chiave pubblica self-signed. Possiamo esportare il certificato della Microsystems Inc contenuto nel keystore attraverso l’opzione -export
:
keytool -export -alias "Microsystems Inc" -file microsystems-inc.crt -keystore keystore.jks
Il formato PEM è il formato più comune utilizzato per i certificati. Le estensioni utilizzate per i certificati PEM sono cer, crt e pem. Si tratta di file ASCII codificati Base64.
Evidenziamo inoltre anche il formato DER che rappresenta il modulo binario del certificato. I certificati formattati DER non contengono le dichiarazioni “BEGIN CERTIFICATE / END CERTIFICATE
“.
Per visualizzare il contenuto del certificato esportato, facciamo uso ancora del keytool con l’opzione -printcert
:
keytool -printcert -v -file microsystems-inc.crt

Generare una Certificate Signing Request (CSR)
In precedenza abbiamo generato un certificato auto firmato utile in fase di sviluppo e test di un sistema informativo. Quando il nostro sistema deve andare in esecuzione abbiamo la necessità che il certificato sia firmato da un’autorità di certificazione che garantisca che il certificato in questione sia effettivamente di proprietà della Microsystem Inc.
Il Keytool permette di raggiungere questo obiettivo attraverso la generazione di una Certificate Signing Request o CSR:
keytool -certreq -alias "Microsystems Inc" -keystore keystore.jks -file microsystems-inc.csr
Il precedente comando ha generato la richiesta di cui abbiamo bisogno producendo un file CSR. A questo punto la Microsystems Inc invierà il file, insieme ai suoi dati identificativi, a una Certification Authority (CA), rimanendo successivamente in attesa del certificato a chiave pubblica da essa firmato.
Una volta ottenuto il certificato, con il comando che segue, la Microsystems Inc sovrascrive il certificato self-signed presente nel suo keystore:
keytool -import -keystore keystore.jks -file microsystems-inc-response.crt -alias "Microsystems Inc"
Un’aspetto importante da evidenziare è l’assunzione, nell’esecuzione dei comandi precedenti, che il certificato pubblico della CA scelta sia già presente nel keystore o all’interno del file cacerts
presente nel percorso $JAVA_HOME/jre/lib/security
.
La mancanza del certificato o della catena di certificati che fa capo a un CA avrebbe prodotto un errore nel comando d’importazione. Il file cacerts
contiene i certificati di terze parti ritenuti affidabili.
Una CA può emettere un certificato anche per un’altra CA, in modo da creare catene gerarchiche di certificati. Controllare la validità di un certificato comporta risalire la sua catena di autorizzazioni.
In cima alla catena gerarchica è presente una Root CA che possiede un certificato self-signed. I browser sono configurati per dare fiducia a un insieme di CA note contenendo quindi dei root certificate.
Se vuoi aggiornamenti su Java inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Premiazione edizione italiana Imagine Cup 2013
Il momento della premiazione e la sorpresa dei campioni.