OpenVPN-feil: ukjent alternativ tls-remote eller keysize
En nyere OpenVPN-klient avviser gamle profillinjer som tls-remote og keysize. Les navnet på alternativet, bytt ut kontrollen og la verifiseringen stå på.
Det begynner vanligvis med en profil som har vært tilkoblet i årevis, åpnet i en nyere klient, og feiler før tunnelen i det hele tatt starter. Terminalen skriver ut noe som Options error: Unrecognized option ... in client.ovpn:130: tls-remote, med en versjon i parentes til slutt. Les det som en klage fra parseren: filen inneholder et direktiv som denne klienten ikke lenger kjenner.
Denne ene meldingen forklarer hvorfor det ikke hjelper å generere nøkler på nytt, skrive passordet på nytt eller sjekke serveren. Feilen skjer mens klienten leser sin egen konfigurasjon, før den åpner en socket. Det nyttige arbeidet er å identifisere det avviste direktivet og erstatte det med dagens ekvivalent.
Les linjen som feiler før du endrer noe
Kjør klienten selv i stedet for å starte den fra et ikon i systemkurven, slik at meldingen er synlig og profilbanen er entydig. Åpne filen på den angitte linjen og se på tokenet klienten navnga. Linjenummeret er profillinjen, ikke en versjon, noe som forvirrer folk fordi samme nummer står i parentesen som utgivelsesidentifikator.
Gamle profilgeneratorer ga ikke ut ett dårlig direktiv, men flere. Rett den første feilen, kjør klienten på nytt og forvent at den neste dukker opp. Den rekkefølgen er normal og ikke et tegn på at endringene gjorde ting verre.
Hva som skjedde med keysize og tls-remote
keysize krevde en chiffernøkkellengde i æraen da profilen valgte chifferen eksplisitt. OpenVPN 2.4 erklærte den foreldet, og senere klienter fjernet den fra alternativtabellen, så parseren avviser nå linjen i stedet for å ignorere den. Moderne forhandlinger utleder nøkkellengden fra den valgte chifferen, og derfor er det ingenting igjen for direktivet å styre.
tls-remote ble fjernet i 2.4. Det sammenlignet serverens sertifikat med et forventet navn, og erstatningen er verify-x509-name, som er strengere på hvordan navnet matches. Det gamle direktivet er borte, så en profil som bærer det vil aldri bli parset på en nåværende klient.
Rett ett direktiv per forsøk. Hvis profilen også angir en chiffer klienten ikke tilbyr, gir det en annen feil senere, og å blande begge endringene i én redigering gjør det umulig å si hvilken som brøt håndtrykket. Koble til på nytt etter hver redigering og ta vare på feilteksten. Den vanen gir også en fungerende reserve hvis en endring gjør ting verre.
Skriv om serveridentitetskontrollen
Erstatningen tar det forventede navnet og en sammenligningsmodus. verify-x509-name vpn.example.edu name krever at sertifikatets subject er nøyaktig lik den verdien. Andre moduser matcher et prefiks eller en full subject-streng, og å velge feil modus gjør en fungerende profil til en ren verifiseringsfeil.
Hvis det gamle tls-remote-argumentet var serverens fulle common name, er en nøyaktig name-sammenligning vanligvis riktig. Hvis det var en delvis verdi, bruk prefiksmodusen i stedet for å forkorte det forventede navnet, fordi et kortere nøyaktig treff ikke vil verifisere. Når den opprinnelige verdien ikke er skrevet ned, spør den som driver serveren om subjectet de publiserer.
Ikke gjør kontrollen taus for å få feilen til å forsvinne. Å fjerne verifisering av serveridentitet gjør et reparerbart profilproblem til en uverifisert tunnel, og det er nettopp risikoen direktivet fantes for å hindre.
Rettet profil, lokal redigering eller eldre klient
Når noen andre eier serveren, er den reneste veien en gjeldende profil fra dem. Kopien din kommer fra en eldre generator, og deres eksport bruker allerede de gjeldende direktivene. Én nedlasting fjerner hele feilkategorien og holder fremtidige redigeringer på ett sted.
Når du eier begge ender, rediger en kopi og behold originalen. Endre ett direktiv, lagre, koble til og noter klientversjonen du testet. Hold en kort notat ved hver redigering, fordi en profil som er redigert over flere økter er vanskelig å revidere fra hukommelsen. Kommandolinjekjøringer mot den redigerte filen gjør den løkken rask fordi feilen går rett til terminalen.
Å feste eller rulle tilbake til en klient før 2.4 får også meldingen til å forsvinne, og med en enhet som aldri blir oppdatert kan det være den eneste gjennomførbare midlertidige løsningen. Behandle det som midlertidig: en gammel klient på en nåværende maskin betyr vanligvis et gammelt bibliotek og en konfigurasjon som ikke støttes, noe som er et utsatt og ikke løst problem.
Når tunnelen er oppe, les hele profilen en gang til. Profiler som bar ett fjernet direktiv bærer ofte et annet, og det andre dukker bare opp etter at det første er borte.