Tips: creazione coppia chiavi pubblica/privata – parte 3

Dopo aver visto l’utilizzo delle utility da linea di comando OpenSSL e KeyTool, in questo post parlerò di una delle due GUI che utilizzo per gestire i miei certificati: Portecle

Portecle è una GUI sviluppata in Java (funziona sia su linux che su windows) che utilizzo principalmente per la gestione dei Keystore/Truststore Java (JKS).

Per poter utilizzare tutte le funzionalità di Portecle (ad esempio l’esportazione in formato PKCS12) è necessario installare sul proprio pc le Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files scaricabili gratuitamente sul sito SUN (ops… volevo dire Oracle) al seguente link.

Con Portecle è possibile:

  • creare, modificare e convertire Keystore
  • generare coppie di chiavi pubbliche/private sia DSA che RSA
  • Importare ed esportare certificati e coppie di chiavi
  • Visualizzare i dettagli dei certificati (Issuer, Subject, validità, estensioni,…)
  • e tanto altro…

Portecle è lo strumento che utilizzo maggiormente quando devo configurare keystore e truststore per Tomcat, non mi dilungo sul suo funzionamento poichè lo considero estremamente intuitivo (ci sono le classiche funzionalità “new”, “open”, “save”, “import”, “export”).

Annunci

Tips: creazione coppia chiavi pubblica/privata – parte 2

Dopo aver visto qualche comando utile con Keytool, vediamo qualche comando con OpenSSL:

creazione di una chiave privata

openssl genrsa -out PRIVATE_KEY.KEY 1024

ecco il significato delle principali opzioni:

  1. genrsa: richiede la generazione di una chiave privata RSA
  2. -out: file di output in formato PEM
  3. 1024: dimensione in bit della chiave

creazione di una certificate request

openssl req -new -key PRIVATE_KEY.KEY -out CERTIFICATE_REQUEST.CSR

generazione di un certificato self-signed:

openssl x509 -req -days 1825 -in CERTIFICATE_REQUEST.CSR -signkey PRIVATE_KEY.KEY -out CERTIFICATE.CRT

generazione certificato selfsigned con estensioni (X.509v3):

– creare un file di properties in cui specificare le estensioni, es:

[sezione]
keyUsage=digitalSignature, dataEncipherment

utilizzare il seguente comando:

openssl x509 -req -days 1825 -in CERTIFICATE_REQUEST.CSR -signkey PRIVATE_KEY.KEY -out CERTIFICATE.CRT -extfile NOMEFILE.properties -extensions SEZIONE

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”

Habanero: il paradiso piccante

Ieri mattina del tutto inaspettatamente li ho trovati in un supermercato…

Habanero misti

Ne ho già provati due e sono davvero eccezionali (oltre che particolarmente piccanti), soprattutto essendo freschi si sente molto il gusto leggermente fruttato che dona un sapore in più ai cibi.

Prima di provarli mi sono un po’ informato, nella confezione ci sono diverse varietà, tra cui il chocolate (quello più scuro) ed il red savina, entrambi fortissimi.

Inoltre mi sono informato sulla tecnica di misurazione della piccantezza (Scala Scovine), che è un metodo poco scentifico, dato che dipende dalla soggettività umana (infatti si basa da un insieme di assaggiatori), su questa scala i peperoncini italiani variano tra i 5000 e i 15000 SHU (Scoville Heat Units), mentre gli habanero red savina e chocolate vanno dai 100000 SHU fin oltre i 500000 SHU!

Adesso non vedo l’ora di provarli tutti (magari qualcuno lo farò essiccare).