Miks OpenVPN Windowsis ca teatab: jutumärkideta tee, mitte halb sertifikaat
Jutumärkideta Program Files tee jaguneb mitmeks argumendiks ja parser süüdistab valikut. Kontrollige jutumärke, kliendirida ja kodeeringut.
OpenVPN ei käivitu ja veateade osutab reale, mis näeb korras välja: Unrecognized option or missing or extra parameter(s) in office.ovpn:42: ca. Sertifikaat ei ole muutunud, fail avaneb redaktoris ja tee juures ei paista miski valesti olevat. Parser ei vaidlusta valiku nime; ta vaidlustab, kui mitu argumenti sellega kaasa tuli. Neli kontrolli lahendavad peaaegu iga sellise juhtumi ja neid tasub teha kulukuse järjekorras.
Miks parser valikut süüdistab
Iga konfiguratsioonirida jaotatakse tühikute ja jutumärkide järgi enne, kui ükski valik seda näeb. Seepärast saabub tühikut sisaldav väärtus mitme argumendina, kui seda ei ole ümbritsetud, ja rida omav valik teatab lahknevusest. Windowsis teeb selle kindlaks vaikimisi paigalduskaust, sest C:\Program Files asub konstruktsiooni järgi tee keskel. Selles veas ei avata sertifikaati kunagi, seega faili olemasolu kontrollimine ei tõesta midagi kasulikku.
Teatatud reanumber on tavaliselt õige ja teatatud valik on see, mis rea ära kasutas. Kui nimetatud valik on selline, mida te teate, et ei ole kunagi kirjutanud, lugege rida selle kohal, sest varasemas plokis kaotatud jutumärk nihutab parsimist. Nii jääbki sertifikaadiplokk lõpuks argumentide arvu süüdi.
ca C:\Program Files\OpenVPN\config\office-ca.crtPange jutumärgid ümber iga tühikuga tee
Üks paar topeltjutumärke väärtuse ümber on kogu parandus ja kaldkriipsud ettepoole on Windowsis lubatud, nii et escapimine ei saa kunagi probleemi osaks. Parandage kõik teevalikud samas läbimises, sest parser peatub esimese vea juures ja järgmine ootab lihtsalt järgmist taaskäivitust. Komplekt sisaldab tavaliselt ca, cert, key, tls-auth ja 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"Otsing kataloogi nime järgi leiab iga esinemise kiiremini kui faili lugemine. Käivitage see enne igasugust redigeerimist, et nimekiri oleks täielik:
Select-String -Path .\office.ovpn -Pattern 'Program Files'Profiili viimine tühikuteta teele on kehtiv alternatiiv ja see on kehtiv ainult siis, kui iga tee liigub koos sellega. Poolenisti teisaldatud profiil taasesitab sama vea teise failinimega ja seda on raskem märgata, sest teade osutab nüüd teele, mille te just lõite. Valige üks lähenemine ja viige see lõpuni.
Taastage režiimdeklaratsioon enne sertifikaate
Teine tavaline põhjus annab teistsuguse teate sama raisatud pärastlõunaga. Kliendiprofiil peab oma režiimi deklareerima ülaosa lähedal ja see deklaratsioon läheb kergesti kaotsi, kui uude faili kleepida ainult sertifikaadiplokid. Ilma selleta loeb OpenVPN faili teistsuguse vaikeväärtuste komplektiga ja kahju ilmneb palju hiljem valikute vahelise konfliktina või sisselogimise ebaõnnestumisena. Puuduv rida on odav kontrollida ja kallis unustada.
client
dev tun
proto udp
remote vpn.example.net 1194Hoidke üks direktiiv rea kohta, kuni te seal olete. Ühendatud read annavad täpselt esimese jaotise argumentide arvu vea ja teatatud rida näeb mõistlik välja, sest ühendamine toimus seal, kus redaktor teksti murdis. Lugege toorrea, mitte kuvatud rida.
Kodeerimiskahjustus näeb välja nagu valiku nimi
UTF-16-na salvestatud fail koos baitide järjekorra märgiga peidab parseri eest oma esimese valiku ja juhuslikud baidid võivad teates valiku nime külge klammerduda. Salvestage fail UTF-8-na ilma baitide järjekorra märgita, seejärel avage see uuesti ja kinnitage, et esimene märk on tavaline täht. Redaktorid, PowerShelli ümbersuunamine ja vestlusaknast kleepitud tekst muudavad kodeeringut küsimata.
Format-Hex .\office.ovpn | Select-Object -First 1Baitide järjekorra märk ilmub juhtivate märgibaitidena enne igasugust teksti ja nende märkide käsitsi kustutamine on kaotav käik, sest redaktor kirjutab need järgmisel salvestamisel tagasi. Salvestage fail selle asemel uuesti selge kodeeringuga. Reavahetused on leebemad, kuid fail, mille lõpus pole reavahetust, võib pärast redigeerimist viimase direktiivi siiski eelmisega kokku sulandada.
Milline kontroll esimesena ja miks
Alustage kodeeringust, sest see maksab ühe käsu ja muudab kehtetuks iga teise faililugemise. Siis jutumärgid, seejärel režiimideklaratsioon ja muud kohustuslikud direktiivid ning alles pärast neid sertifikaadid, võtmed ja volitused. Selles järjekorras töötamine hoiab iga sammu pööratavana, sest jutumärkide probleemi parandamiseks vahetatud sertifikaat jätab töötava paigalduse uue rikkega, mis on originaalist kaks muudatust kaugel. Järjekord loeb rohkem kui üksikud kontrollid.
Hoidke puutumata koopiat failist sellisena, nagu operaator selle tarnis. Kui hilisem muudatus selle rikub, näitab erinevus selle koopiaga, kas jutumärk, reavahetus või märgibait liikus, mis on kiirem kui vea uuesti lugemine. Iga direktiivi valikute viide on paigaldatud versiooni OpenVPN-i käsiraamatus.