Jan 132011
 

keystore Molti application server Java utilizzano un keystore come repository dei propri certificati ed in generale tutte le applicazioni Java utilizzano quello fornito con il JDK stesso, vediamo cos’e’ e come lavorarci.

Un keystore è un repository di certificati di sicurezza, che può contenere le chiavi e certificati e crittografare il tutto con una password. In altre parole, un keystore è come una tabella che ha un alias che identifica un certificato ed anche il certificato stesso.

Il JDK Java ha un keystore CAC in jre/lib/security/cacerts. JDK fornisce uno strumento: keytool per manipolare le chiavi.

Un altro modo per gestire questo tipo di certificato è Portecle uno strumento grafico che può aiutare in queste operazioni.

Keytool

Keytool gestisce un keystore (database) di chiavi crittografiche, catene di certificati X.509 e certificati attendibili. Questi esempi sono per il keytool fornita con Java SE 6.

Creare una chiave privata

keytool -genkeypair -alias mycert -keyalg RSA -keysize 1024 
-dname "CN=localhost,OU=Home,O=Home,L=SL,S=WS,C=LK" 
-keypass mypkpassword -keystore mykeystore.jks -storepass mystorepassword

CN –> Common Name
OU –> Organizational Unit
O –> Oranization
L –> Locality
S –> State
C –> Country

Questo genera una chiave privata e lo archivia nel keystore [mykeystore.jks]. Nel caso in cui non si aveva un keystore allora il precedente comando creerà un nuovo keystore per voi con una chiave privata.

Si notino inoltre i due parametri -keypass e -storepass. -keypass è la password utilizzata per la chiave privata e -storepass è la password utilizzata per il keystore.

Vedere il contenuto di un Keystore

Questo è un esempio con il cacert fornito da Java:

root@laptop:/etc/ssl/certs/java# keytool -list  -keystore cacerts

Questo fornisce un output del tipo (la password di default del keystore è changeit):

Enter keystore password:  
 
Keystore type: JKS
Keystore provider: SUN
 
Your keystore contains 141 entries
 
startcom_ltd, Oct 2, 2009, trustedCertEntry,
Certificate fingerprint (MD5): 08:7C:58:1F:52:2B:44:B4:3B:79:CD:01:F8:C5:C3:C9
startcom_certification_authority, Oct 2, 2009, trustedCertEntry,
Certificate fingerprint (MD5): 22:4D:8F:8A:FC:F7:35:C2:BB:57:34:90:7B:8B:22:16
gte_cybertrust_global_root, Oct 2, 2009, trustedCertEntry,
Certificate fingerprint (MD5): CA:3D:D3:68:F1:03:5C:D0:32:FA:B8:2B:59:E8:5A:DB
go_daddy_class_2_ca, Oct 2, 2009, trustedCertEntry,

Per avere un output più dettagliato è possibile utilizzare il flag -v

Importare un Certificato

Una tra le cose più comuni è quella di importare nuovi certificati all’interno del vostro keystore.

Esempio, importare nel vostro keystore la CA principale di Verisign, è possibile ottenere il certificato principale di VeriSign da qui.

Copiare tutto il testo da lì a un nuovo file e dare come nome VeriSign-demo-root-cert.pem.

Adesso, aggiungiamolo al nostro keystore:

keytool -importcert -v -noprompt -trustcacerts -alias verisigndemocert 
-file verisign-demo-root-cert.pem -keystore mykeystore.jks -storepass mystorepassword

Portecle

portecle

Portecle è un applicazione GUI per creare, gestire ed esaminare keystore, chiavi, certificati, richieste di certificati, elenchi di revoca dei certificati e altro ancora.

Per usare Portecle basta:

1. Scaricarlo da qua

2. Scompattare l’archivio scaricato.

3. Andate nella directory creata e fate partire Portecle usando il comando “java -jar portecle.jar”

Questo farà partire la Gui di Portecle da dove si può aprire un keystore, esaminare un certificato o esportarne uno e fare altre cose molto più facilmente che con il comando keytool.

portecle

Riferimenti:
http://blog.facilelogin.com/2008/03/keystore-management-part-i.html

http://portecle.sourceforge.net/

http://ykyuen.wordpress.com/2010/07/05/portecle-keystore-and-certification-manager/

Popular Posts:

Flattr this!

  2 Responses to “Gestione del Keystore in Linux”

  1. If you want to replace keytool with a GUI tool then you can also use CERTivity.
    http://www.edulib.com/products/keystores-manager/

    It can handle different types of keystores (JKS, JCEKS, PKCS12, BKS, UBER, Windows) and digital signatures.

  2. How to check the actual file location, by actual i mean .pem file

Leave a Reply to edulib Cancel reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*