Creare una certification authority in Linux

Per utilizzare SSL su un sistema Linux è possibile implementare OpenSSL.

Una volta scaricati e scompattati i sorgenti bisogna portarsi nella directory e eseguire

./config –prefix=/usr -openssldir=/usr/share/ssl shared

L’opzione shared indica a OpenSSL di creare sia le shared libraries che le static libraries
Una volta effettuata la configurazione è possibile procedere con l’installazione

make
make test
make install

A questo punto è possibile procedere con la creazione della CA.
Bisogna spostarsi nella directory in cui si vogliono tenere i certificati

cd /etc/ssl/certs

e poi avviare la creazione

/usr/share/ssl/misc/CA -newca
CA certificate filename (or enter to create)
Making CA certificate …
Generating a 1024 bit RSA private key
….++++++
…………………….++++++
writing new private key to ‘./demoCA/private/./cakey.pem’
Enter PEM pass phrase:
Verifying – Enter PEM pass phrase:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [GB]:IT
State or Province Name (full name) [Berkshire]:Torino
Locality Name (eg, city) [Newbury]:Torino
Organization Name (eg, company) [My Company Ltd]:prova.test
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) []:server
E-mail Address []:admin@prova.test

Dopo questo è necessario creare un file di configurazione per la nuva CA

cp /usr/share/ssl/openssl.cnf /etc/ssl/certs/demoCA/openssl.cnf

con questo comando si copia il file di esempio nella directory generata dalla creazione della nuova CA.
Nel file che si è copiato è necessario verificare che siano corretti i parametri relativi alla directory in cui si trova la CA
Quindi in questo esempio bisognerà modificare la linea

dir            =./demoCA

in

dir            =/etc/ssl/certs/demoCA

In questo file inoltre è possibile modificare i dati relativi alla nazione.

Nella stessa directory bisogna creare il file relativo al certificato della CA eseguendo il seguente comando

openssl genrsa -out server.pem -des3 1024

A questo punto è possibile iniziare a creare e firmare i propri cerificati.
Per creare un certificato bisogna prima creare una richiesta che verrà poi passata alla CA.

openssl req -config /etc/ssl/certs/demoCA/openssl.cnf -new -keyout server.prova.test.pem -out server.prova.test.csr

Durante la creazione del certificato vengono richieste una serie di informazioni tra le quali la più importante è quella relativa al common name.
Il common name deve corrispondere all’hostname per cui viene creato il certificato.
Al termine dell’operazione vengono creati due file che consistono nella chiave e nella richiesta di certificato per il sistema.
A questo punto la richiesta di certificato deve essere inviata alla CA creata.

openssl ca -config /etc/ssl/certs/demoCA/openssl.conf -policy policy_anything -out server.prova.test.cert.pem -infiles server.prova.test.csr

In questo modo viene generato il file server.prova.test.cert.pem che rappresenta il certificato e si può eliminare il filre .csr realativo alla richiesta