Errore OpenVPN: opzione tls-remote o keysize non riconosciuta
Un client OpenVPN più recente rifiuta righe di profilo vecchie come tls-remote e keysize. Leggi il nome dell’opzione, sostituisci il controllo e mantieni la verifica attiva.
Di solito inizia con un profilo che si è connesso per anni, aperto su un client più recente, e fallisce prima ancora che il tunnel parta. Il terminale stampa qualcosa come Options error: Unrecognized option ... in client.ovpn:130: tls-remote, con una versione tra parentesi alla fine. Leggilo come una lamentela del parser: il file contiene una direttiva che questo client non conosce più.
Quel singolo messaggio spiega perché rigenerare le chiavi, ridigitare la password o controllare il server non serva a nulla. L’errore avviene mentre il client legge la propria configurazione, prima di aprire un socket. Il lavoro utile è identificare la direttiva rifiutata e sostituirla con l’equivalente attuale.
Leggi la riga che fallisce prima di modificare qualsiasi cosa
Avvia il client da solo invece di lanciarlo da un’icona nella tray, così il messaggio è visibile e il percorso del profilo non è ambiguo. Apri il file alla riga indicata e guarda il token che il client ha nominato. Il numero di riga è la riga del profilo, non una versione, cosa che confonde le persone perché lo stesso numero compare tra parentesi come identificatore di versione.
I vecchi generatori di profili non emettevano una sola direttiva sbagliata, ma diverse. Correggi il primo errore, riavvia il client e aspettati che compaia il successivo. Questa sequenza è normale e non è un segno che le modifiche abbiano peggiorato le cose.
Che cosa è successo a keysize e tls-remote
keysize richiedeva una lunghezza della chiave di cifratura nell’epoca in cui il profilo sceglieva la cifratura esplicitamente. OpenVPN 2.4 l’ha dichiarata obsoleta, e i client successivi l’hanno rimossa dalla tabella delle opzioni, quindi il parser ora rifiuta la riga invece di ignorarla. La negoziazione moderna deriva la lunghezza della chiave dalla cifratura scelta, per questo alla direttiva non resta più nulla da controllare.
tls-remote è stato rimosso nella 2.4. Confrontava il certificato del server con un nome atteso, e il suo sostituto è verify-x509-name, che è più rigoroso su come viene confrontato il nome. La vecchia direttiva è sparita, quindi un profilo che la contiene non verrà mai analizzato su un client attuale.
Correggi una direttiva per tentativo. Se il profilo specifica anche una cifratura che il client non offre, questo produce un altro errore più avanti, e mescolare entrambe le modifiche in un’unica modifica rende impossibile capire quale abbia rotto l’handshake. Riconnettiti dopo ogni modifica e conserva il testo dell’errore. Quell’abitudine lascia anche un piano B funzionante se una modifica peggiora le cose.
Riscrivi la verifica dell’identità del server
Il sostituto prende il nome atteso e una modalità di confronto. verify-x509-name vpn.example.edu name richiede che il soggetto del certificato sia esattamente uguale a quel valore. Le altre modalità confrontano un prefisso o una stringa di soggetto completa, e scegliere la modalità sbagliata trasforma un profilo funzionante in un fallimento di verifica pulito.
Se il vecchio argomento tls-remote era il nome comune completo del server, un confronto esatto name di solito è corretto. Se era un valore parziale, usa la modalità prefisso invece di accorciare il nome atteso, perché una corrispondenza esatta più breve non verificherà. Quando il valore originale non è scritto, chiedi a chi gestisce il server il soggetto che pubblicano.
Non silenziare il controllo per far sparire l’errore. Rimuovere la verifica dell’identità del server trasforma un problema di profilo riparabile in un tunnel non verificato, ed è esattamente il rischio che la direttiva esisteva per prevenire.
Profilo corretto, modifica locale o client più vecchio
Quando il server è di qualcun altro, la via più pulita è un profilo attuale da quella persona. La tua copia viene da un generatore più vecchio, e la loro esportazione usa già le direttive attuali. Un solo download elimina l’intera categoria di errori e tiene le modifiche future in un unico posto.
Quando possiedi entrambe le estremità, modifica una copia e conserva l’originale. Cambia una direttiva, salva, connettiti e annota la versione del client che hai testato. Tieni una nota breve accanto a ogni modifica, perché un profilo modificato in più sessioni è difficile da verificare a memoria. Le esecuzioni da riga di comando sul file modificato rendono veloce quel ciclo perché l’errore va dritto al terminale.
Bloccare o tornare a un client precedente alla 2.4 fa sparire anche il messaggio, e con un dispositivo che non verrà mai aggiornato potrebbe essere l’unico espediente temporaneo praticabile. Trattalo come temporaneo: un client vecchio su un desktop attuale di solito significa una libreria vecchia e una configurazione non supportata, che è un problema rinviato anziché risolto.
Quando il tunnel sale, leggi di nuovo tutto il profilo. I profili che portavano una direttiva rimossa spesso ne portano un’altra, e la seconda emerge solo dopo che la prima è sparita.