Esempio classico: il certificato di openvpn dopo 10 anni scade, il certificato originale era stato creato con easy-rsa
È possibile rinnovare il certificato della Certification Authority e del server in scadenza e far si che i client continuino a collegarsi.
Nel caso di alcuni software (vedi openvpn), il client dispone anche di copia del certificato server, purtroppo in questo caso andrà comunque inviata la nuova accoppiata (CA + server) al client.
Potremmo comunque installare sul server i nuovi certificati prima della scadenza e rinnovare man mano tutti i clienti senza che nessuno di essi smetta di funzionare.
Passaggi, in questo caso il vecchio certificato era stato prodotto con easy-rsa:
cd /etc/openvpn/extern-rsa
# carichiamo le variabili di easy-rsa (attenzione ai punti):
. ./vars
# Se non abbiamo la csr originale possiamo ricrearla partendo dal certificato e dalla chiave:
openssl x509 -x509toreq -in keys/ca.crt -signkey keys/ca.key -out keys/ca_2016.csr
# Ricreiamo un nuovo certificato CA con una nuova data di scadenza, estensioni per la CA e seriale 00 (attenzione: se il certificato CA non ha questo seriale openssl lo rifiuta, mentre i sistemi microsoft lo accettano 😉 )
openssl ca -config /etc/openvpn/extern-rsa/openssl.cnf -out keys/ca_2016.crt -set_serial 0000 -extensions v3_ca -days 7200 -keyfile keys/ca.key -selfsign -infiles keys/ca_2016.csr
# Ricrieamo ora il certificato per il server, presupponendo che abbiamo ancora il csr, altrimenti possiamo ricrearli con il passaggio sopra.
openssl ca -config /etc/openvpn/extern-rsa/openssl.cnf -out keys/extern_2016.crt -extensions server -days 7200 -infiles keys/extern.csr
Per verificare che tutto sia ok possiamo controllare un certificato già generato e ancora valido con la vecchia CA:
openssl verify -CAfile keys/ca.crt -verbose keys/test.crt
e in seguito con la nuova:
openssl verify -CAfile keys/ca_2016.crt -verbose keys/test.crt
In entrambi i casi il risultato sarà OK.
Possiamo anche controllare il nuovo certificato server con la vecchia CA e viceversa:
openssl verify -CAfile keys/ca.crt -verbose keys/extern_2016.crt
openssl verify -CAfile keys/ca_2016.crt -verbose keys/extern.crt
Il risultato sarà sempre OK, se cosi non fosse c’è stato qualche problema nei passaggi precedenti (attenzione al serial ad esempio)
Leave a Reply