Un perfil de OpenVPN que funciona en otro sitio informa de que no se encuentra AES-256-GCM, o de que los pares no comparten ningún cifrado, y el primer impulso es editar el perfil. Esos dos mensajes describen fallos distintos. Uno dice que el programa local no tiene ese algoritmo; el otro, que ambos extremos tienen algoritmos pero ninguna elección común. Editar el perfil no arregla ninguno de los dos hasta que sepas cuál tienes.

Lee el texto exacto del error y el binario que lo produjo.

Decide qué error tienes

El mensaje sobre un cifrado que no se encuentra viene del análisis de opciones en la máquina local, antes de enviar ningún paquete. Significa que el ejecutable que tienes delante, o la biblioteca a la que enlaza, no ofrece ese algoritmo. El mensaje sobre la ausencia de cifrado común llega más tarde, durante la negociación, e implica que ambos lados admiten cifrados pero no coinciden en uno.

La distinción importa porque uno es un problema de versión del software y el otro de configuración. El primero se resuelve con un número de versión. El segundo se resuelve comparando dos listas.

Una carencia local de capacidad

Las compilaciones comunitarias antiguas son anteriores a los valores por defecto modernos, y una aplicación de escritorio puede traer su propio motor, distinto del paquete de línea de órdenes instalado al lado. Haz las comprobaciones sobre el ejecutable que lanzó realmente la conexión y luego elige una compilación compatible en lugar de enseñar un algoritmo nuevo a un binario viejo.

openvpn --version
openvpn --show-ciphers | grep -i gcm
openvpn --show-tls | head -5

Si AES-256-GCM no aparece en esa lista, ninguna línea del perfil lo añadirá. La solución es un cliente más nuevo u otra compilación, y las restricciones del extremo más antiguo pasan a ser una cuestión de diseño aparte.

En los clientes basados en OpenVPN 3, el motor y las directivas aceptadas difieren de la línea comunitaria 2.x, así que el mismo texto de perfil puede fallar por motivos que nada tienen que ver con la lista de cifrados.

Una carencia de negociación

Cuando ambos pares enumeran el algoritmo, queda la pregunta de qué lista ofrece cada lado. El OpenVPN comunitario renombró la directiva de negociación: ncp-ciphers en 2.4 pasó a data-ciphers en 2.5, y en 2.6 la línea cipher antigua sirve sobre todo para compatibilidad y respaldo, no para definir el conjunto negociado.

Por eso cambiar solo una línea cipher antigua puede dejar intacta la lista de negociación. La línea vieja sigue importando para el respaldo, que es un trabajo aparte. Confundir ambas produce ediciones que no cambian nada visible.

openvpn --version | head -2
grep -n -E '^(data-ciphers|ncp-ciphers|cipher|tls-cipher)' server.conf client.ovpn

Compara las listas de ambos extremos y el mensaje de rechazo del servidor. Si la intersección está vacía, alinea las listas a propósito en lugar de copiar un valor de un artículo escrito para otra versión. Una lista demasiado generosa debilita en silencio cada conexión. Una lista demasiado estrecha excluye al par que querías conservar.

Mantén la compatibilidad explícita

Un respaldo para un par antiguo es una decisión con un coste: todo el despliegue acepta una opción más débil para que un dispositivo pueda conectarse. Escríbelo como tal y limítalo al par que lo necesita.

Dos condiciones deciden el resultado. Si el error es local, sustituye la compilación. Si el error es de negociación, alinea las listas en ambos extremos y anota qué versiones mantienes.

Después informa del error exacto con la salida de versión y capacidades adjunta. Esa pareja separa un algoritmo ausente de una discrepancia y detiene la siguiente ronda de ediciones especulativas antes de que empiece.

Artículos relacionados