lunedì 9 giugno 2014

openssl: generare in casa certificati per VPN

Attenzione, a partire dalla release 5.15 RouterOS supporta il formato di chiavi pkcs8.
Se utilizzate una release precedente e volete importare le chiavi pkcs8 lanciate il comando:

 openssl rsa -in myKey.key -text  

poi copiate l´output in un file e lo uploadate sul vostro router.

Cominciamo preparando una coppia chiave/certificato per la nostra CA (Certificate Authority):

 openssl genrsa -des3 -out ca.key 4096  
 openssl req -new -x509 -days 3650 -key ca.key -out ca.crt  

Durante il processo dovrete inserire alcune voci (Common Name (CN), Organization, State or province .. etc). La coppia chiave/certificato generata avra' una validita' di 10 anni (3650 giorni).

Ora passiamo a generare una coppia chiave/certificato per il nostro server (ad esempio il router Mikrotik a cui ci vogliamo collegare in VPN)

 openssl genrsa -des3 -out server.key 4096  
 openssl req -new -key server.key -out server.csr  
 openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt  

Di nuovo, durante il processo dovrete inserire alcune voci.Al momento di inserire CN ricordate che deve essere diverso da quello del certificato della CA e da quello del client (che andremo a generare tra poco) per evitare collisioni nei nomi.

Attenzione: Il Common Name (CN) nel certificato del server dovrebbe corrispondere all'IP address del server altrimenti verra' generato un messaggio di warning al momento della connessione.
Se il client saranno solo macchine Windows il CN puo'tranquillamente essere un nome DNS.

La generazione del paio chiave/certificato per il client e'mlto simile a quella per il server, ricordatevi di usare un CN univoco.

 openssl genrsa -des3 -out client.key 4096  
 openssl req -new -key client.key -out client.csr  
 openssl x509 -req -days 3650 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt  

Per esaminare e verificare il certificato usate il comando seguente:

 openssl x509 -noout -text -in server.crt -purpose  

Nessun commento: