Per què OpenVPN diu ca a Windows: una ruta sense cometes, no un certificat dolent
Una ruta de Program Files sense cometes es divideix en diversos arguments i l’analitzador culpa l’opció. Comproveu les cometes, la línia del client i la codificació.
OpenVPN no arrenca, i el missatge de fallada assenyala una línia que sembla correcta: Unrecognized option or missing or extra parameter(s) in office.ovpn:42: ca. El certificat no ha canviat, el fitxer s’obre en un editor i res de la ruta no sembla incorrecte. L’analitzador no objecta el nom de l’opció; objecta quants arguments han arribat amb ella. Quatre comprovacions resolen gairebé tots els casos, i val la pena fer-les per ordre de cost.
Per què l’analitzador culpa l’opció
Cada línia de configuració es divideix per espais i per cometes abans que cap opció la vegi. Per tant, un valor que conté un espai arriba com a diversos arguments si no va entre cometes, i l’opció que posseïa la línia informa del desajustament. A Windows, el directori d’instal·lació predeterminat ho fa segur, perquè C:\Program Files és al mig de la ruta per construcció. El certificat no s’obre mai en aquesta fallada, així que comprovar si el fitxer existeix no demostra res d’útil.
El número de línia reportat sol ser correcte, i l’opció reportada és la que va consumir la línia. Quan l’opció esmentada és una que sabeu que no vau escriure mai, llegiu la línia de sobre, perquè una cometa perduda dins d’un bloc anterior desplaça l’anàlisi. Així és com un bloc de certificat acaba sent culpat del recompte d’arguments.
ca C:\Program Files\OpenVPN\config\office-ca.crtPoseu cometes a tota ruta que contingui un espai
Un parell de cometes dobles al voltant del valor és tota la reparació, i les barres inclinades cap endavant s’accepten a Windows, així que l’escapament no es converteix mai en part del problema. Corregiu totes les opcions de ruta en la mateixa passada, perquè l’analitzador s’atura a la primera fallada i la següent només espera el proper reinici. El conjunt sol incloure 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"Una cerca pel nom del directori troba cada aparició més de pressa que llegir el fitxer. Executeu-la abans de qualsevol edició, perquè la llista sigui completa:
Select-String -Path .\office.ovpn -Pattern 'Program Files'Moure el perfil a una ruta sense espais és una alternativa vàlida, i només és vàlida si cada ruta es mou amb ell. Un perfil mig migrat reprodueix el mateix error amb un nom de fitxer diferent, cosa que és més difícil de detectar perquè el missatge ara assenyala una ruta que acabeu de crear. Trieu un enfocament i acabeu-lo.
Recupereu la declaració de mode abans dels certificats
La segona causa habitual produeix un missatge diferent amb la mateixa tarda perduda. Un perfil de client ha de declarar el seu mode a prop de dalt, i aquesta declaració es perd fàcilment quan només s’enganxen els blocs de certificat en un fitxer nou. Sense ella, OpenVPN llegeix el fitxer amb un conjunt diferent de valors predeterminats, i el mal apareix molt més tard com un conflicte entre opcions o una fallada d’inici de sessió. La línia que falta és barata de comprovar i cara d’oblidar.
client
dev tun
proto udp
remote vpn.example.net 1194Mantingueu una directiva per línia mentre hi sigueu. Les línies unides produeixen exactament l’error de recompte d’arguments de la primera secció, i la línia reportada sembla raonable perquè la unió va passar on l’editor va partir el text. Llegiu la línia crua, no la representada.
El mal de codificació sembla un nom d’opció
Un fitxer desat com a UTF-16, amb marca d’ordre de bytes inclosa, amaga la seva primera opció a l’analitzador, i bytes solts poden enganxar-se al nom de l’opció al missatge. Deseu el fitxer com a UTF-8 sense marca d’ordre de bytes, torneu-lo a obrir i confirmeu que el primer caràcter és una lletra normal. Els editors, la redirecció de PowerShell i el text enganxat d’una finestra de xat canvien la codificació sense preguntar.
Format-Hex .\office.ovpn | Select-Object -First 1La marca d’ordre de bytes apareix com a bytes marcadors inicials abans de qualsevol text, i esborrar aquests caràcters a mà és una jugada perduda perquè l’editor els torna a escriure al desament següent. Torneu a desar el fitxer amb una codificació explícita. Els finals de línia són més indulgents, però un fitxer sense salt de línia al final encara pot fusionar l’última directiva amb l’anterior després d’una edició.
Quina comprovació fer primer, i per què
Comenceu per la codificació, perquè costa una ordre i invalida qualsevol altra lectura del fitxer. Després les cometes, després la declaració de mode i les altres directives obligatòries, i només després els certificats, les claus i les credencials. Treballar en aquest ordre manté cada pas reversible, perquè un certificat canviat per arreglar un problema de cometes deixa una instal·lació en funcionament amb una fallada nova a dues edicions de l’original. L’ordre importa més que les comprovacions individuals.
Conserveu una còpia intacta del fitxer tal com l’operador el va enviar. Si una edició posterior el trenca, una diferència amb aquesta còpia mostra si s’ha mogut una cometa, un salt de línia o un byte de marca, cosa més ràpida que rellegir l’error. La referència d’opcions de cada directiva és al manual d’OpenVPN de la versió instal·lada.