Normalmente empieza con un perfil que ha estado conectado durante años, abierto en un cliente más nuevo, y falla antes de que el túnel siquiera arranque. El terminal imprime algo como Options error: Unrecognized option ... in client.ovpn:130: tls-remote, con una versión entre paréntesis al final. Léelo como una queja del analizador: el archivo contiene una directiva que este cliente ya no conoce.

Ese único mensaje explica por qué regenerar las claves, volver a escribir la contraseña o comprobar el servidor no sirve de nada. El fallo ocurre mientras el cliente lee su propia configuración, antes de abrir un socket. El trabajo útil es identificar la directiva rechazada y sustituirla por el equivalente actual.

Lee la línea que falla antes de cambiar nada

Ejecuta el cliente tú mismo en lugar de lanzarlo desde un icono de la bandeja, para que el mensaje sea visible y la ruta del perfil no sea ambigua. Abre el archivo en la línea indicada y mira el token que nombró el cliente. El número de línea es la línea del perfil, no una versión, lo que confunde a la gente porque el mismo número aparece entre paréntesis como identificador de la versión.

Los generadores de perfiles antiguos no emitían una sola directiva mala, sino varias. Corrige el primer error, vuelve a ejecutar el cliente y espera a que aparezca el siguiente. Esa secuencia es normal y no es señal de que los cambios hayan empeorado las cosas.

Qué pasó con keysize y tls-remote

keysize pedía una longitud de clave de cifrado en la época en que el perfil elegía el cifrado explícitamente. OpenVPN 2.4 lo declaró obsoleto, y los clientes posteriores lo quitaron de la tabla de opciones, así que el analizador ahora rechaza la línea en vez de ignorarla. La negociación moderna deriva la longitud de la clave del cifrado seleccionado, por eso a la directiva no le queda nada que controlar.

tls-remote se eliminó en la 2.4. Comparaba el certificado del servidor con un nombre esperado, y su reemplazo es verify-x509-name, que es más estricto sobre cómo se compara el nombre. La directiva antigua ha desaparecido, así que un perfil que la lleve nunca se analizará en un cliente actual.

Corrige una directiva por intento. Si el perfil también especifica un cifrado que el cliente no ofrece, eso produce otro error más adelante, y mezclar ambos cambios en una sola edición hace imposible saber cuál rompió el handshake. Vuelve a conectarte después de cada edición y conserva el texto del error. Ese hábito también deja un plan B funcional si una edición empeora las cosas.

Reescribe la comprobación de identidad del servidor

El reemplazo toma el nombre esperado y un modo de comparación. verify-x509-name vpn.example.edu name exige que el sujeto del certificado sea exactamente igual a ese valor. Otros modos coinciden con un prefijo o con una cadena de sujeto completa, y elegir el modo equivocado convierte un perfil funcional en un fallo de verificación limpio.

Si el antiguo argumento tls-remote era el nombre común completo del servidor, una comparación exacta name suele ser lo correcto. Si era un valor parcial, usa el modo de prefijo en lugar de acortar el nombre esperado, porque una coincidencia exacta más corta no verificará. Cuando el valor original no está escrito, pregunta a quien opera el servidor por el sujeto que publican.

No silencies la comprobación para que el error desaparezca. Eliminar la verificación de identidad del servidor convierte un problema de perfil reparable en un túnel sin verificar, que es exactamente el riesgo que la directiva existía para evitar.

Perfil corregido, edición local o cliente más antiguo

Cuando el servidor es de otra persona, el camino más limpio es un perfil actual de ella. Tu copia viene de un generador más antiguo, y su exportación ya usa las directivas actuales. Una descarga elimina toda la categoría de errores y mantiene las ediciones futuras en un solo lugar.

Cuando eres dueño de ambos extremos, edita una copia y conserva el original. Cambia una directiva, guarda, conéctate y anota la versión del cliente que probaste. Mantén una nota breve junto a cada edición, porque un perfil editado durante varias sesiones es difícil de auditar de memoria. Ejecutar desde la línea de comandos contra el archivo editado hace que ese bucle sea rápido porque el error va directo al terminal.

Fijar o volver a un cliente anterior a la 2.4 también hace desaparecer el mensaje, y con un dispositivo que nunca se actualizará puede ser el único apaño viable. Trátalo como temporal: un cliente antiguo en un escritorio actual normalmente significa una biblioteca antigua y una configuración no soportada, que es un problema aplazado más que resuelto.

Cuando el túnel arranque, lee todo el perfil una vez más. Los perfiles que llevaban una directiva eliminada a menudo llevan otra, y la segunda solo aparece después de que la primera haya desaparecido.

Artículos relacionados