Obiettivo di questo esercizio è creare un certificato per il servizio di shopping ed uno per il client. I certificati saranno selfsigned ed inclusi in un keystore criptato.
Step 1. Creazione del certificato. Creiamo il certificato usando il comando:
keytool -genkey -alias shopping -keystore shopping.jks -keyalg RSA
Saranno richieste alcune informazioni, come le password di cifratura e i metadati del certificato.
Importante | |
---|---|
Quando un'applicazione Java invoca una URL in HTTPS, viene verificato che il
|
Importante | |
---|---|
Per una limitazione della JVM, certificato privato e keystore devono avere la stessa password di cifratura. Quando viene richiesta, non inserirla per utilizzare la stessa. |
[lai@unipi]$ keytool -genkey -alias shopping -keystore shopping.jks -keyalg RSA Immettere la password del keystore: ****** Immettere nuovamente la nuova password: ****** Specificare nome e cognome [Unknown]: localhost Specificare il nome dell'unità organizzativa [Unknown]: LAI Specificare il nome dell'organizzazione [Unknown]: Unipi Specificare la località [Unknown]: Pisa Specificare la provincia [Unknown]: Pisa Specificare il codice a due lettere del paese in cui si trova l'unità [Unknown]: IT Il dato CN=localhost, OU=LAI, O=Unipi, L=Pisa, ST=Pisa, C=IT è corretto? [no]: si Immettere la password della chiave per <shopping> (INVIO se corrisponde alla password del keystore):
Step 2. Verifica del certificato.
Verifichiamo che il keystore appena creato
contenga una chiave privata riferita con alias shopping
emessa da noi stessi (autofimato).
[lai@unipi]$ keytool -list -v -keystore shopping.jks Immettere la password del keystore: ****** Tipo keystore: JKS Provider keystore: SUN Il keystore contiene 1 voce Nome alias: shopping Data di creazione: 20-mag-2015 Tipo di voce: PrivateKeyEntry Lunghezza catena certificati: 1 Certificato[1]: Proprietario: CN=localhost, OU=LAI, O=Unipi, L=Pisa, ST=Pisa, C=IT Autorità emittente: CN=localhost, OU=LAI, O=Unipi, L=Pisa, ST=Pisa, C=IT Numero di serie: 358d63b3 Valido da: Wed May 20 12:36:47 CEST 2015 a: Tue Aug 18 12:36:47 CEST 2015 Impronte digitali certificato: MD5: 20:E8:CE:44:53:0B:4F:90:75:CC:54:DB:87:98:0C:D6 SHA1: 1D:08:4B:A9:C9:1C:C4:6B:9D:41:B2:F2:72:C8:B4:BF:B0:DF:5F:71 SHA256: 2B:86:74:6B:BE:6D:C2:BF:D7:0D:DF:13:BF:03:40:33:34:47:E5 Nome algoritmo firma: SHA1withRSA Versione: 3 ....
Step 3. Keystore per il Client.
Ripetere i due step precedenti per creare il keystore
client.jks
con un certificato selfsigned
con CN=client
e alias client
.
Obiettivo di questo esercizio è creare un trustore contenente il certificato pubblico del servizio di shopping. da utilizzare nei client.
Step 1. Estrazione della chiave pubblica del servizio shopping. Estraiamo il certificato usando il comando:
keytool -export -alias shopping -keystore shopping.jks -file shopping.cert
Step 2. Importazione nel keystore del client. Importiamo il certificato in un nuovo keystore da utilizzare nel client come trustore:
keytool -import -keystore client.jks -file shopping.cert -alias shopping
e verifichiamo che contenga entrambe le entry
[lai@unipi]$ keytool -list -keystore client.jks Immettere la password del keystore: ****** Tipo keystore: JKS Provider keystore: SUN Il keystore contiene 2 voci client, 20-mag-2015, PrivateKeyEntry, Impronta digitale certificato (SHA1): 3C:A0:F2:CB:FA:43.... shopping, 20-mag-2015, trustedCertEntry, Impronta digitale certificato (SHA1): 94:8E:B0:28:FA:1A.... ...
Step 3. Truststore per il servizio.
Ripetere i due step precedenti per estrarre il certificato
pubblico del client e aggiungerlo al keystore shopping.jks