De ce OpenVPN spune ca în Windows: o cale fără ghilimele, nu un certificat defect
O cale Program Files fără ghilimele se împarte în mai multe argumente, iar analizatorul dă vina pe opțiune. Verificați ghilimelele, linia clientului și codarea.
OpenVPN nu pornește, iar mesajul de eroare indică o linie care pare corectă: Unrecognized option or missing or extra parameter(s) in office.ovpn:42: ca. Certificatul nu s-a schimbat, fișierul se deschide într-un editor și nimic din cale nu pare greșit. Analizatorul nu contestă numele opțiunii; contestă câte argumente au venit împreună cu ea. Patru verificări rezolvă aproape orice astfel de caz, și merită făcute în ordinea costului.
De ce analizatorul dă vina pe opțiune
Fiecare linie de configurare este împărțită pe spații și pe ghilimele înainte ca vreo opțiune să o vadă. De aceea o valoare care conține un spațiu ajunge ca mai multe argumente dacă nu este încadrată, iar opțiunea care deținea linia raportează nepotrivirea. În Windows directorul de instalare implicit face acest lucru sigur, pentru că C:\Program Files stă prin construcție la mijlocul căii. Certificatul nu este niciodată deschis în această eroare, deci verificarea dacă fișierul există nu dovedește nimic util.
Numărul liniei raportat este de obicei corect, iar opțiunea raportată este cea care a consumat linia. Când opțiunea numită este una despre care știți că nu ați scris-o niciodată, citiți linia de deasupra, pentru că o ghilimea pierdută într-un bloc anterior deplasează analiza. Așa ajunge un bloc de certificat să fie învinuit pentru numărul de argumente.
ca C:\Program Files\OpenVPN\config\office-ca.crtPuneți ghilimele în jurul fiecărei căi cu spațiu
O pereche de ghilimele duble în jurul valorii este întreaga reparație, iar barele oblice sunt acceptate în Windows, așa că escaparea nu devine niciodată parte a problemei. Corectați fiecare opțiune de cale în aceeași trecere, pentru că analizatorul se oprește la prima eroare, iar următoarea așteaptă doar următoarea repornire. Setul include de obicei ca, cert, key, tls-auth și 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"O căutare după numele directorului găsește fiecare apariție mai repede decât citirea fișierului. Rulați-o înainte de orice editare, ca lista să fie completă:
Select-String -Path .\office.ovpn -Pattern 'Program Files'Mutarea profilului într-o cale fără spații este o alternativă validă, și este validă doar dacă fiecare cale se mută împreună. Un profil mutat pe jumătate reproduce aceeași eroare cu alt nume de fișier, ceea ce este mai greu de observat pentru că mesajul indică acum o cale pe care tocmai ați creat-o. Alegeți o abordare și duceți-o la capăt.
Recuperați declarația de mod înaintea certificatelor
A doua cauză frecventă produce alt mesaj cu aceeași după-amiază pierdută. Un profil de client trebuie să își declare modul aproape de început, iar acea declarație se pierde ușor când într-un fișier nou se lipesc doar blocurile de certificate. Fără ea OpenVPN citește fișierul cu alt set de valori implicite, iar stricăciunea apare mult mai târziu ca o confruntare între opțiuni sau ca o autentificare eșuată. Linia lipsă este ieftin de verificat și scump de uitat.
client
dev tun
proto udp
remote vpn.example.net 1194Păstrați o directivă pe linie cât timp sunteți acolo. Liniile lipite produc exact eroarea de număr de argumente din prima parte, iar linia raportată pare rezonabilă pentru că lipirea a avut loc acolo unde editorul a rupt textul. Citiți linia brută, nu pe cea afișată.
Deteriorarea codării arată ca un nume de opțiune
Un fișier salvat ca UTF-16, cu marcă de ordine a octeților, își ascunde prima opțiune de analizator, iar octeții rătăciți se pot lipi de numele opțiunii în mesaj. Salvați fișierul ca UTF-8 fără marcă de ordine a octeților, apoi redeschideți-l și confirmați că primul caracter este o literă obișnuită. Editoarele, redirecționarea din PowerShell și textul lipit dintr-o fereastră de chat schimbă toate codarea fără să întrebe.
Format-Hex .\office.ovpn | Select-Object -First 1Marca de ordine a octeților apare ca octeți de marcaj în frunte, înaintea oricărui text, iar ștergerea manuală a acelor caractere este o mișcare pierzătoare pentru că editorul le rescrie la următoarea salvare. În schimb, salvați fișierul din nou cu o codare explicită. Terminațiile de linie sunt mai îngăduitoare, dar un fișier fără linie nouă la final poate totuși contopi ultima directivă în cea anterioară după o editare.
Ce verificare prima, și de ce
Începeți cu codarea, pentru că necesită o singură comandă și invalidează orice altă citire a fișierului. Apoi ghilimelele, apoi declarația de mod și celelalte directive obligatorii, și numai după ele certificatele, cheile și datele de autentificare. Lucrul în această ordine păstrează fiecare pas reversibil, pentru că un certificat înlocuit ca să repare o problemă de ghilimele lasă o instalare funcțională cu o defecțiune nouă la două editări de original. Ordinea contează mai mult decât verificările individuale.
Păstrați o copie neatinsă a fișierului așa cum l-a livrat operatorul. Dacă o editare ulterioară îl strică, o diferență față de acea copie arată dacă s-a mișcat o ghilimea, o linie nouă sau un octet de marcaj, ceea ce este mai rapid decât recitirea erorii. Referința opțiunilor pentru fiecare directivă este în manualul OpenVPN al versiunii instalate.