
Ejecutamos servidores OpenVPN en varias instancias de escalado automático (para redundancia y autorreparación), por lo que se aprovisionan mediante scripts. Nuestro enfoque para administrar certificados de clientes en estas instancias efímeras es bastante torpe y actualmente implica extraer un archivo tar en el /etc/openvpn/easy-rsa/pki
directorio.
Me gustaría mover solo los certificados del cliente a un directorio de red compartido, pero no he podido averiguar qué configuraciones informan a openvpn sobre estos subdirectorios pki. ( ca/cert/key/dh
Todas las configuraciones apuntan profundamente a la jerarquía, es decir /etc/openvpn/easy-rsa/pki/issued/server.crt
, lo que implica para mí que no habría suposiciones integradas sobre la estructura del directorio easy-rsa).
¿Cómo encuentra openvpn estos archivos?
Respuesta1
Hola y gracias por la pregunta...
Es un poquito más fácil de lo que piensas ;-). No necesita todos los certificados de cliente. Se necesitan certificados de cliente para el cliente...
Al lado del archivo de configuración hay 3-4 archivos generados y "vinculados" que podrían incrustarse directamente como sección en el archivo de configuración (estos son todos los que necesita tener en el servidor/cliente).
- Clave TLS (opcional pero no está mal de usar ;-))
Esta es una clave compartida para proteger la comunicación incluso antes de iniciar el tráfico específico del cliente; sin conocer esta clave, el servidor simplemente ignora su comunicación. Este archivo es el mismo en el servidor y en el cliente.
Autoridad de certificación CA: ¿cuál es el certificado que se utiliza para confirmar la confianza del lado remoto?
servidor: Certificado de la autoridad que emite el certificado de cliente. ESTO es lo que está buscando, ya que este archivo se puede utilizar para verificar TODOS los certificados de cliente emitidos durante la conexión. Este único archivo se puede utilizar para verificar los certificados actuales y futuros emitidos por la misma CA (eso es lo que cubre easy-rsa)
cliente: este archivo se utiliza para verificar el certificado de confianza del servidor. Puede ser lo mismo que en el lado del servidor, pero técnicamente el certificado del servidor podría ser emitido por una CA diferente a la de los certificados de los clientes.
llave
Clave privada utilizada para asegurar la comunicación. Este archivo debe mantenerse seguro ya que es el archivo que confirma su identidad.
- certificado
certificado (clave pública "envuelta" con información adicional relacionada con la Autoridad de Certificación en estructura X.509). Este archivo puede incluso estar disponible públicamente, ya que se utiliza sólo para comprobar la validez de la comunicación (que la clave utilizada para la firma sea realmente "esa" clave de confianza).
Como mencionó easy-rsa, la CA probablemente sea la misma para el lado del cliente y del servidor. Una vez que tenga la clave TLS común, el archivo CA común y la clave propia con el certificado correspondiente, tendrá todo lo que necesita para que funcione.
Una vez que genera la clave y el certificado para el usuario y se lo entrega (o al menos lo envía), ya no los necesita y esta clave de usuario + certificado podría incluso eliminarse del servidor...
En la "gran" Autoridad de Certificación, el servidor emisor ni siquiera conoce la clave de usuario, ya que la solicitud de certificación contiene una clave pública (información derivada de la clave privada), que es todo lo necesario para crear un certificado firmado: la clave se genera en el lado del cliente. y nunca dejarlo por el proceso...