OpenVPN-fel: okänd option tls-remote eller keysize
En nyare OpenVPN-klient avvisar gamla profilrader som tls-remote och keysize. Läs optionens namn, byt ut kontrollen och behåll verifieringen på.
Det börjar vanligtvis med en profil som har anslutit i åratal, öppnad i en nyare klient, och som misslyckas innan tunneln ens startar. Terminalen skriver något i stil med Options error: Unrecognized option ... in client.ovpn:130: tls-remote, med en version inom parentes i slutet. Läs det som ett klagomål från parsern: filen innehåller ett direktiv som klienten inte längre känner till.
Det enda meddelandet förklarar varför nyckelgenerering, ett nytt lösenordsförsök eller serverkontroll inte hjälper. Felet inträffar medan klienten läser sin egen konfiguration, innan den öppnar en socket. Det användbara arbetet är att identifiera det avvisade direktivet och ersätta det med dagens motsvarighet.
Läs raden som misslyckas innan du ändrar något
Kör klienten själv i stället för att starta den från en ikon i aktivitetsfältet, så att meddelandet syns och sökvägen till profilen är entydig. Öppna filen på den rapporterade raden och titta på token som klienten namngav. Radnumret är profilraden, inte en version, vilket förvirrar folk eftersom samma nummer står inom parentes som en utgivningsidentifierare.
Gamla profilgeneratorer skrev inte ut ett dåligt direktiv, utan flera. Rätta det första felet, kör klienten igen och räkna med att nästa dyker upp. Den ordningen är normal och inget tecken på att ändringarna gjorde saken värre.
Vad som hände med keysize och tls-remote
keysize begärde en nyckellängd för chiffret på den tiden profilen valde chiffer explicit. OpenVPN 2.4 avskaffade det, och senare klienter tog bort det från alternativtabellen, så parsern avvisar nu raden i stället för att ignorera den. Modern förhandling härleder nyckellängden från det valda chiffret, och därför finns det inget kvar för direktivet att styra.
tls-remote togs bort i 2.4. Det jämförde servercertifikatet med ett förväntat namn, och ersättningen är verify-x509-name, som är strängare i hur namnet matchas. Det gamla direktivet är borta, så en profil som har det kommer aldrig att parsas av en aktuell klient.
Rätta ett direktiv per försök. Om profilen också anger ett chiffer som klienten inte erbjuder, ger det ett annat fel senare, och att blanda båda ändringarna i en enda redigering gör det omöjligt att avgöra vilken som bröt handskakningen. Återanslut efter varje ändring och spara feltexten. Vanan lämnar också en fungerande återfallsplan om en ändring gör saken värre.
Skriv om kontrollen av serverns identitet
Ersättningen tar det förväntade namnet och ett jämförelseläge. verify-x509-name vpn.example.edu name kräver att certifikatets subjekt är exakt lika med det värdet. Andra lägen matchar ett prefix eller en full subjektsträng, och att välja fel läge gör en fungerande profil till ett rent verifieringsfel.
Om det gamla tls-remote-argumentet var serverns fullständiga common name är en exakt name-jämförelse oftast rätt. Om det var ett delvärde ska du använda prefixläget i stället för att korta det förväntade namnet, eftersom en kortare exakt matchning inte verifierar. När det ursprungliga värdet inte är nedskrivet, fråga den som driftar servern vilket subjekt de publicerar.
Tysta inte kontrollen för att få felet att försvinna. Att ta bort verifieringen av serverns identitet förvandlar ett åtgärdbart profilproblem till en overifierad tunnel, vilket är precis den risk direktivet fanns för att förhindra.
Rättad profil, lokal redigering eller äldre klient
När någon annan äger servern är den renaste vägen en aktuell profil från dem. Din kopia kom från en äldre generator, och deras export använder redan de aktuella direktiven. En nedladdning tar bort hela felkategorin och håller framtida redigeringar på ett ställe.
När du äger båda ändarna, redigera en kopia och behåll originalet. Ändra ett direktiv, spara, anslut och notera klientversionen du testade. Ha en kort anteckning vid varje ändring, eftersom en profil som redigerats under flera sessioner är svår att granska från minnet. Körningar från kommandoraden mot den redigerade filen gör den loopen snabb, eftersom felet går rakt till terminalen.
Att fästa eller rulla tillbaka till en klient före 2.4 får också meddelandet att försvinna, och med en apparat som aldrig uppdateras kan det vara den enda genomförbara tillfälliga lösningen. Behandla det som tillfälligt: en gammal klient på ett aktuellt skrivbord betyder oftast ett gammalt bibliotek och en konfiguration utan stöd, vilket är ett problem som skjuts upp i stället för att lösas.
När tunneln är uppe, läs igenom hela profilen en gång till. Profiler som bar ett borttaget direktiv bär ofta ett till, och det andra dyker först upp när det första är borta.