Kvifor OpenVPN på Windows seier ca: ein sti utan hermeteikn, ikkje eit dårleg sertifikat
Ein Program Files-sti utan hermeteikn blir delt i fleire argument, og parsaren skuldar på valet. Sjekk hermeteikna, klientlinja og kodinga.
OpenVPN startar ikkje, og feilmeldinga peikar på ei linje som ser heilt riktig ut: Unrecognized option or missing or extra parameter(s) in office.ovpn:42: ca. Sertifikatet er ikkje endra, fila opnar i ein editor, og ingenting ved stien ser gale ut. Parsaren innvender ikkje mot namnet på valet; han innvender mot kor mange argument som kom med det. Fire kontrollar løyser nesten kvart einaste tilfelle, og dei er verd å køyre i kostnadsrekkjefølgje.
Kvifor parsaren skuldar på valet
Kvar konfigurasjonslinje blir delt på mellomrom og på hermeteikn før noko val ser henne. Ein verdi med eit mellomrom kjem derfor som fleire argument med mindre han er pakka inn, og valet som åtte linja rapporterer avviket. På Windows gjer standard installasjonsmappe det sikkert, fordi C:\Program Files av konstruksjon ligg midt i stien. Sertifikatet blir aldri opna i denne feilen, så ein sjekk av om fila finst beviser ingenting nyttig.
Det rapporterte linjenummeret er som regel riktig, og det rapporterte valet er det som brukte linja. Når valet som blir nemnt er eit du veit du aldri har skrive, les linja over, fordi eit tapt hermeteikn i ein tidlegare blokk forskyv parseringa. Slik endar ein sertifikatblokk opp med å få skulda for eit argumenttal.
ca C:\Program Files\OpenVPN\config\office-ca.crtSet hermeteikn rundt kvar sti med eit mellomrom
Eitt par doble hermeteikn rundt verdien er heile reparasjonen, og skråstrekar blir godtekne på Windows, så escaping blir aldri ein del av problemet. Retta alle stival i same gjennomgang, fordi parsaren stoppar ved første feil og den neste berre ventar på neste omstart. Settet omfattar vanlegvis ca, cert, key, tls-auth og auth-user-pass.
ca "C:/Program Files/OpenVPN/config/office-ca.crt"
cert "C:/Program Files/OpenVPN/config/office.crt"
key "C:/Program Files/OpenVPN/config/office.key"Eit søk etter mappenamnet finn kvar førekomst raskare enn å lese fila. Køyr det før du redigerer noko, slik at lista er komplett:
Select-String -Path .\office.ovpn -Pattern 'Program Files'Å flytte profilen til ein sti utan mellomrom er eit gyldig alternativ, og det er berre gyldig viss kvar sti flyttar med. Ein halvvegs migrert profil gjengjev same feil med eit anna filnamn, noko som er vanskelegare å oppdage fordi meldinga no peikar på ein sti du nettopp oppretta. Vel éin tilnærming og fullfør henne.
Gjenopprett modusdeklarasjonen før sertifikata
Den andre vanlege årsaka gir ei anna melding med den same bortkasta ettermiddagen. Ein klientprofil må deklarere modusen sin nær toppen, og den deklarasjonen er lett å miste når berre sertifikatblokkene blir limte inn i ei ny fil. Utan han les OpenVPN fila med eit anna sett standardverdiar, og skaden viser seg mykje seinare som konflikt mellom val eller mislukka pålogging. Den manglande linja er billeg å kontrollere og dyr å gløyme.
client
dev tun
proto udp
remote vpn.example.net 1194Hald éin direktiv per linje medan du er der. Samansette linjer gir nøyaktig argumenttal-feilen frå første del, og den rapporterte linja verkar rimeleg fordi samansetjinga skjedde der editoren braut teksten. Les den rå linja, ikkje den viste.
Kodingsskade ser ut som eit valnamn
Ei fil som vart lagra som UTF-16 med byteordensmerke, gøymer det første valet sitt for parsaren, og lause byte kan hengje seg på valnamnet i meldinga. Lagre fila som UTF-8 utan byteordensmerke, opne henne så igjen og stadfest at det første teiknet er ein vanleg bokstav. Editorar, PowerShell-omdirigering og tekst limt inn frå eit chatvindauge endrar alle kodinga utan å spørje.
Format-Hex .\office.ovpn | Select-Object -First 1Eit byteordensmerke viser seg som leande markeringsbyte før all tekst, og å slette desse teikna for hand er eit tapande trekk fordi editoren skriv dei tilbake ved neste lagring. Lagre i staden fila på nytt med ei eksplisitt koding. Linjeslutt er meir overberande, men ei fil utan ny linje til slutt kan framleis slå saman den siste direktiven med den førre etter ei redigering.
Kva kontroll først, og kvifor
Byrja med kodinga, fordi ho kostar éin kommando og gjer kvar annan lesing av fila ugyldig. Så hermeteikna, deretter modusdeklarasjonen og dei andre påkravde direktiva, og først etter dei sertifikata, nøklane og påloggingsdetaljane. Å arbeide i den rekkjefølgja held kvart steg reversibelt, fordi eit sertifikat som blir bytt for å rette eit hermeteikn-problem etterlet ein fungerande installasjon med ein ny feil som er to redigeringar frå originalen. Rekkjefølgja tyder meir enn dei enkelte kontrollane.
Ta vare på ein urørt kopi av fila slik operatøren leverte henne. Viss ei seinare redigering øydelegg henne, viser ein diff mot den kopien om eit hermeteikn, ei ny linje eller ein markeringsbyte har flytta seg, noko som er raskare enn å lese feilen på nytt. Valreferansen for kvar direktiv står i OpenVPN-handboka for den installerte versjonen.