Los certificados son para autenticación , no para authorization.
Autenticación trata (aquí) del servidor OpenVPN y se asegura de que el supuesto cliente sea quien dice ser. Este es el punto de los certificados: el cliente muestra su certificado, que contiene su clave pública e identidad; el servidor valida el certificado (con respecto a su CA de confianza) para asegurarse de que el contenido del certificado sea genuino; el cliente demuestra el dominio de la clave privada correspondiente (normalmente al generar una firma basada en un desafío del servidor, esto se hace dentro de los detalles del protocolo de comunicación). De esa manera, el servidor aprende que quien esté en el otro extremo de la línea es realmente el propietario de la clave pública que está en el certificado del cliente; y el certificado, al ser verificado como genuino, permite al servidor deducir que la identidad en el certificado es realmente la del propietario de la clave.
Autorización se produce como un segundo paso. Ahora que el servidor sabe quién está llamando, aún debe decidir si a ese cliente se le otorgará acceso o no. Esta es una decisión del lado del servidor.
De su descripción, usted (aparentemente) configuró OpenVPN para usar certificados para autorización; o, dicho de otro modo, usted aplica una "autorización automática" que otorga acceso a cualquier persona que pueda autenticarse. Esta es la raíz de tu problema; Los certificados no son buenos para la autorización. Como notó, si usa una regla de autorización de este tipo, los "usuarios permitidos" no se pueden incluir de manera confiable, a menos que tenga conocimiento de todos los certificados emitidos. Además, si desea cerrar el acceso para un usuario, normalmente necesita cerrarlo ahora , no dentro de una semana ; pero la revocación es asíncrona y será realmente efectiva solo cuando la CRL anterior haya caducado.
Si bien una buena CA debe debe tener un conocimiento preciso de todos los certificados que ha emitido (aunque solo sea para poder revocar un certificado a voluntad), no hay ningún mecanismo en X.509 para garantizar la consistencia e integridad de dicha lista. Además, la naturaleza asíncrona de la revocación es una prueba más de que los certificados proporcionan medios de autorización inadecuados.
Lo que realmente necesita es mantener una lista exhaustiva de "usuarios permitidos" en el lado del servidor (en los archivos de configuración de OpenVPN). Los usuarios se identificarían por su nombre (aparentemente, OpenVPN usa la parte de 'Nombre común' del sujetoDN en los certificados para hacer referencia a los usuarios); el servidor extraerá la identidad del cliente de los certificados de cliente entrantes y autorizará al usuario solo si aparece en la lista de usuarios permitidos. Si implementa dicha autorización explícita, entonces tiene una lista confiable de usuarios permitidos ya que, por definición, es la lista que el servidor OpenVPN usa para otorgar o denegar el acceso. Además, le permite bloquear y desbloquear el acceso de cualquier usuario específico al instante .