L’articolo OpenVPN Rinnovo e Verifica Certificato ha lo scopo di presentare una soluzione per la gestione dei certificati utilizzati da OpenVPN© per l’attivazione di connessioni VPN. OpenVPN© è uno dei più diffusi software per la creazione di tunnel VPN per connessioni remote sicure. Smartworking o telelavoro sono ormai diventate modalità di lavoro ampiamente diffuse e OpenVPN© è uno strumento che permette di implementarle e supportarle in maniera sicura e veloce.
Generalmente OpenVPN© ha come impostazioni di default la porta di ascolto 1194/UDP e la scadenza dei certificati (client, server e CA) impostata a 3650 giorni, cioè 10 anni. OpenVPN Rinnovo e Verifica Certificato descrive le principali operazioni da effettuare.
Per verificare la scadenza di un certificato, per esempio della CA possiamo usare il comando:
- #openssl x509 -in ca.crt -text -noout | grep After
oppure per verificare la scadenza di un certificato, per esempio del server possiamo usare il comando:
- #openssl x509 -in server.crt -text -noout | grep After
il risultato sarà del tipo:
- Not After : Sep 13 13:48:00 2029 GMT
che indica la data di termine validità del cerificato in questione.
Scopo di questo breve articolo è quello di illustrare come rinnovare o creare certificati con durata diversa dallo standard. Per modificare la durata dei certificati è possibile agire in due modi:
- Attraverso il file di configurazione vars presente in /etc/openvpn. Questo file valorizza i vari parametri utilizzati dagli script di generazione dei certificati. In particolare i parametri coinvolti sono:
- export CA_EXPIRE=3650
- export KEY_EXPIRE=3650
entrambi i valori possono essere modificati secondo l’esigenza.
Dopo aver modificato i valori contenuti nel file vars, per generare un certificato si utilizzano i seguenti comandi: - #. vars o #source vars
#./buid-key-server <NOME>
in caso di rinnovo è necessario specificare un <NOME> diverso da quello per evitare l’errore di update database.
- DIrettamente in fase di rinnovo con il comando:
- openssl x509 -in ca.crt -days 36500 -out ca.crt.new -signkey ca.key
specificando esplicitamente il numero di giorni ad es. 10 anni
- openssl x509 -in ca.crt -days 36500 -out ca.crt.new -signkey ca.key
Per rinnovare il certificato del server (es. server_xyz123456abcd…), bisogna, come primo step, rinominare o spostare il certificato in uso per evitare un errore di update dal database:
- mv /etc/openvpn/easy-rsa/pki/reqs/server_xyz123456abcd.req server_xyz123456abcd.req.backup
- mv /etc/openvpn/easy-rsa/pki/private/server_xyz123456abcd.key server_xyz123456abcd.key.backup
- mv /etc/openvpn/easy-rsa/pki/issued/server_xyz123456abcd.crt server_xyz123456abcd.crt.backup
- mv /etc/openvpn/server_xyz123456abcd.crt server_xyz123456abcd.crt.backup
- mv /etc/openvpn/server_xyz123456abcd.key server_xyz123456abcd.key.backup
Quindi ci spostiamo in easy-rsa e generiamo il nuovo certificato:
- cd /etc/openvpn/easy-rsa
- EASYRSA_CERT_EXPIRE=3650 ./easyrsa build-server-full server_xyz123456abcd nopass (=3650 indica scadenza 10 anni)
A questo punto non ci resta che copiare il certificato appena generato in openvpn per renderlo attivo:
- cp /etc/openvpn/easy-rsa/pki/issued/server_xyz123456abcd.crt /etc/openvpn
- cp /etc/openvpn/easy-rsa/pki/private/server_xyz123456abcd.key /etc/openvpn
Riavviare quindi il server openvpn !