OpenSSL X509 howto – creare certificati a raffica –

padlock
Picture by Cracam on DeviantArt

Molto spesso è utile creare certificati X509 per svariati servizi che si appoggiano su SSL: openvpn, Postfix+TLS, Courier SSL, openSSH, Apache+SSL.
OpenSSL ci viene incontro in questa necessità e ci risolve tutti i problemi.
I comandi di seguito riportati

Ecco alcuni semplici comandi molto utili:

Creare una Certification Authority

mkdir -p /var/CA
cd /var/CA
/usr/lib/ssl/misc/CA.sh -newca

è molto importante compilare correttamente i campi richiesti durante la creazione della CA. Successivamente la CA verrà utilizata per firmare i certificati che saranno creati. Di fondamentale importanza scegliere adeguatamente la password della CA.

Creare un nuovo certificato e firmarlo con la CA

/usr/lib/ssl/misc/CA.sh -newreq
/usr/lib/ssl/misc/CA.sh -sign

rispondendo alle domande che vengono poste, si crea un certificato X509 e lo si firma con la CA.

Creare un Package pkcs12

I file p12 (pkcs12) contengono un certificato X509, la chiave privata associata e il certificato della CA che lo ha firmato. Sono molto utili in quanto possono essere caricati su dispositivi di autenticazione come SmartCard o token USB. Inoltre possono essere importati nel repository di microsoft windows o nel security device di Mozilla Firefox.
Per creare un file p12:

openssl pkcs12 -in newcert.pem -inkey newkey.pem -certfile demoCA/cacert.pem -export -out certx509.p12

A questo punto è possibile trasferire il file certx509.p12 al client windows o al browser ed importarlo correttamente.

Decrittare la chiave privata

Se il certificato X509 che abbiamo creato, dev’essere associato ad un servizio su GNU/Linux, per esempio un webserver, potrebbe essere scomodo avere la chiave privata codificata. Questo richiede l’immissione della password ogni volta che il servizio dev’essere riavviato. Per risolvere il problema è sufficiente decodificare la chiave e salvarla in chiaro. Ovviamente si dovranno prendere tutte le accortezze necessarie alla gestione di un contenuto così importante in modalità insicura.

openssl RSA -in newkey.pem -out clearkey.pem

By Luca Sartoni

Team Lead at Automattic, WordPress contributor, co-organiser at WordCamp Europe, blogger, photographer, geek, nerd.

3 comments

  1. Ciao sto testando la configurazione di apache2 per certificazione x.509 ma non ho certificati server, come posso simularli ???? se puoi risp per email
    grazie

  2. Salve… ho impostato un metodo di autenticazione EAP-TLS con Radius server per client wifi. Su linux è tutto ok con wpa_supplicant ma con win xp non riesco ad autenticarmi, pur avendo convertito il cert in pkcs12 come specificato in questa guida! :-((

Leave a Reply