¿Perdiste el certificado del cliente? Revoca por número de serie, no por nombre
Un archivo de certificado ausente no es un registro ausente. La revocación funciona sobre el número de serie que firmó la CA, así que encuentra ese objeto antes de emitir un reemplazo.
El archivo del certificado de tu cliente ha desaparecido y el reflejo es revocar el nombre y emitir uno nuevo. Ese reflejo deja válido el certificado original, porque la revocación funciona sobre un número de serie y no sobre una etiqueta. La CA casi con seguridad todavía guarda una copia de lo que emitió, y encontrar esa copia es toda la tarea.
Perder un archivo no es perder el registro de la CA
Una PKI de Easy-RSA conserva los certificados públicos que emitió, y las versiones actuales también archivan copias por serie en el directorio certs_by_serial de la PKI. La clave privada no hace falta para revocar nada. Lo que importa es el certificado exacto que firmó la CA, que la CA ya tiene.
Trabaja sobre una copia de seguridad de la PKI correcta, con el administrador que la posee. La revocación es una operación auditable y no una reparación hecha en una base de datos de producción a medianoche.
Una copia del certificado público incrustado del cliente también sirve, si el despliegue conservó una.
Lee el emisor y la serie antes que nada
Inspecciona el PEM recuperado y anota el emisor, el número de serie, el sujeto y la ventana de validez. El número de serie es único dentro del ámbito de un emisor, no entre todas las CA de tu entorno, así que el emisor forma parte de la identidad. Si varios certificados comparten un sujeto, son esas series las que los distinguen.
Coteja los valores con los registros de la CA y con el dispositivo o la persona que crees que tiene el certificado.
Un nombre común puede reutilizarse, y normalmente se hace. No decidas qué certificados retirar hasta que las series estén anotadas.
Por qué revocar el certificado nuevo no hace nada
Emitir un reemplazo con el mismo nombre común crea un segundo certificado con una serie distinta. Revocar el reemplazo retira el nuevo y deja el original válido hasta que caduque. Desde el punto de vista de la CA son dos objetos independientes, y una CRL lista series y no nombres. El índice de la CA mantiene una fila por certificado emitido exactamente por eso.
La misma confusión produce el error inverso: borrar el archivo del cliente y suponer que la CA lo olvidó. Borrar en el cliente no es un evento de revocación, y el certificado sigue funcionando para cualquiera que tenga una copia.
Ambos errores vienen de tratar el nombre como la identidad.
Revoca el certificado que nombra la serie
Identifica el objeto antes de tocar la CA: openssl x509 -in recovered-client.pem -noout -issuer -serial -subject -dates imprime los cuatro valores en una sola pasada, y la serie es lo que comparas con el archivo de la CA. Easy-RSA guarda ese archivo bajo pki/certs_by_serial, con un archivo por serie. La orden de revocación acepta un nombre común y no una serie, así que copia el archivo archivado a pki/issued/<common-name>.crt y deja que el nombre apunte al objeto que identificaste. Ejecuta easyrsa revoke <common-name> desde el directorio de la PKI y luego comprueba que la fila correspondiente en index.txt haya pasado a R. La serie es cómo eliges el objeto, no un argumento que la orden acepte.
openssl x509 -in recovered-client.pem -noout -issuer -serial -subject -dates
cp pki/certs_by_serial/A1B2C3D4.pem pki/issued/client-01.crt
./easyrsa revoke client-01
grep -n client-01 pki/index.txt
./easyrsa gen-crl
Si index.txt no muestra R, detente y lee el error antes de generar una CRL, porque una CRL construida a partir de un registro que sigue vigente no retira nada. Solo después de que la fila cambie ejecutas easyrsa gen-crl y pasas a distribuir el archivo.
Publica la CRL donde realmente se aplica
Genera una CRL nueva mediante el flujo de trabajo admitido de la PKI y luego publícala en cada verificador que aplique las revocaciones de este emisor.
Un archivo actualizado que reposa en la CA no cambia nada, porque la VPN termina la decisión en su propio verificador. Comprueba el emisor de la CRL, su periodo de validez y las series revocadas, y confirma que el servicio recarga el archivo en lugar de cachear el anterior. La propiedad y la ruta importan tanto como el contenido: una CRL que el demonio no puede leer es indistinguible de no tener ninguna. La opción crl-verify de OpenVPN nombra el archivo que lee el demonio, así que comprueba esa ruta y la propiedad del archivo en la configuración del servidor.
Verifica con un intento de conexión real, no con la marca de tiempo del archivo.
Sabe cuándo una CRL es la herramienta equivocada
Si la clave privada del emisor ya no es de confianza, retirar series conocidas no impide que un poseedor no autorizado firme certificados nuevos. Eso es una transición de confianza del emisor, es decir, una CA nueva y un plan de distribución, no otra entrada en la CRL. Que un antiguo administrador haya tenido acceso no es por sí solo prueba de que la clave se haya usado mal, así que reúne los hechos antes de reconstruir la confianza.
Editar a mano la base de datos de emisión para girar una letra de estado no sustituye una revocación firmada, y deja la CRL incoherente con los registros.
Ten la serie, la CRL y el paso de distribución en una sola nota, y la próxima auditoría se convierte en una lectura. El proyecto Easy-RSA documenta las órdenes admitidas para la versión que tienes instalada, y esa es la única interfaz que merece la pena seguir.