Resumen esquematizado de los pasos que hay que dar para revocar un certificado OpenVPN (osea, que la persona que posee ese certificado, o cualquier otra, no pueda acceder más al servicio vpn en cuestión).
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Revocacion De Certificados Open Vpn
1. Revocación de certificados OpenVPN:
El ejemplo se hace tomando el certificado de Pepito Pérez (pperez), creado y
gestionado en la máquina llamada "gatesheaven" y en un sistema operativo
FreeBSD.
$ cd /usr/local/etc/openvpn/easy-rsa
(como se trabaja con el usuario "root" que usa la shell tcsh, hay que pasar a la shell Bash)
$ bash
$ source ./vars
$ ./revoke-full pperez
Aparecerá un output indicando datos varios como el correo, datos del cliente.crt, etc.
Muy probablemente aparezca un error como este:
error 23 at 0 depth lookup:certificate revoked
Precisamente es lo que se busca, porque indica que la verificación del certificado
revocado ha fallado.
El script "revoke-full" generará un CRL (certificate revocation list) llamado crl.pem en el
directorio /usr/local/etc/openvpn/cert, Este fichero debe copiarse a un directorio donde el
servidor OpenVPN pueda acceder (el mismo propio de la configuración), y activar dicho
fichero en la configuración del servicio, añadiendo al fichero
/usr/local/etc/openvpn/isengard.conf lo siguiente:
crl-verify crl.pem
(NOTA: evidentemente hay que reiniciar el servicio).
A partir de ese momento, todos los clientes que se conecten serán verificados (su
certificado) contra ese fichero, y cualquier resultado positivo será descartado (no
permitirá la conexión).
NOTAS CRL:
• Cuando la opción crl-verify es usada en OpenVPN, el fichero CRL es
releido cada vez que un nuevo cliente se conecta (o un cliente ya conectado
renegocia la conexión SSL/TLS (por defecto una vez cada hora). Esto hace que se
pueda actualizar el fichero CRL mientras que el demonio OpenVPN esté
corriendo, y el nuevo CRL tendrá efecto inmediato para los nuevos clientes que se
conecten (o reconecten). Si el cliente al que se le ha revocado el certificado está
2. conectado, se puede reiniciar el servidor OpenVPN vía script de reinicio
(/usr/local/etc/rc.d/openvpn en FreeBSD isengard), o bien enviando una señal
SIGUSR1 o SIGHUP al proceso), haciendo un flush a todos los clientes.
• Como la directiva crl-verify puede ser usada tanto en la parte servidor como
cliente del OpenVPN, normalmente es completamente innecesario distribuir el
fichero CRL a los clientes, salvo que el certificado de servidor haya sido
revocado. Evidentemente los clientes no tienen porqué saber nada al respecto, y
menos saber qué otros certificados de clientes han sido revocados.