Tips: creazione coppia chiavi pubblica/privata – parte 1

Spesso mi capita di dover configurare un Web Server (es: Apache HTTPD) o un Application Server (es: Apache Tomcat) per gestire comunicazioni HTTPS, quindi mi trovo a dover creare delle coppie di chiavi pubbliche/private in vari formati (PEM, JKS, PKCS12,…).

In questo post (e nei seguenti) descrivo brevemente i comandi che utilizzo per la generazione e i tool grafici di supporto.

Le utility da linea di comando principali sono due:

  • keytool: utility distribuita insieme al JDK standard
  • openssl: vero e proprio “coltellino svizzero” per la crittografia

Keytool

Keytool è una utility da linea di comando distribuita insieme al JDK standard di Oracle, disponibile sia per Linux che per Windows.

Per generare una coppia di chiavi con keytool utilizzo il seguente comando:

keytool -genkey -keystore KEYSTORE.JKS -validity 1825 -storetype JKS -keyalg RSA -alias ALIAS -dname “CN=CommonName”

ecco il significato delle principali opzioni:

  1. -keystore: specifica il nome del KeyStore che conterrà la coppia di chiavi,
  2. -validity: specifica la durata di validità delle chiavi (il valore è in giorni),
  3. -storetype: il formato del KeyStore generato (JKS = Java Key Store),
  4. -keyalg: l’algoritmo per la generazione della coppia di chiavi,
  5. -alias: l’alias con cui è identificata la coppia di chiavi all’interno del KeyStore,
  6. -dname: specifica il campo X.500 Distinguished Name per la coppia di chiavi (nell’esempio ho impostato il Common Name con il valore “CommonName”).

Per estrarre la chiave pubblica dal KeyStore utilizzo il seguente comando:

keytool -export -keystore KEYSTORE.JKS -rfc -file certificate.crt -alias ALIAS -dname “CN=CommonName”

Con questo comando ottengo un certificato in formato PEM (codificato in Base64, quindi facilmente gestibile con un semplice editor di testo)

ecco il significato delle principali opzioni:

  1. -file: specifica il nome del file di output (che conterrà il certificato)
  2. -rfc: specifica che il certificato deve essere in formato PEM

Per importare in un TrustStore la sola chiave pubblica utilizzo il seguente comando:

keytool -import -file certificate.crt -storetype JKS -keystore truststore.jks -alias ALIAS -dname “CN=CommonName”

in questo modo importo il certificato “certificate.crt” nel truststore “truststore.jks”, assegnandogli l’alias “ALIAS”

2 pensieri su “Tips: creazione coppia chiavi pubblica/privata – parte 1”

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...