Bakit sinasabi ng OpenVPN sa Windows ang ca: path na walang quote, hindi sirang sertipiko
Ang Program Files na path na walang quote ay nahahati sa ilang argumento, at sinisisi ng parser ang opsyon. Suriin ang mga quote, ang linya ng kliyente at ang encoding.
OpenVPN ay hindi nagsisimula, at ang mensahe ng pagkabigo ay tumuturo sa isang linyang mukhang maayos: Unrecognized option or missing or extra parameter(s) in office.ovpn:42: ca. Hindi nagbago ang sertipiko, bumubukas ang file sa isang editor, at walang mukhang mali sa path. Hindi tinututulan ng parser ang pangalan ng opsyon; tinututulan nito kung ilang argumento ang dumating kasama nito. Apat na pagsusuri ang lumulutas sa halos lahat ng ganitong kaso, at sulit silang gawin ayon sa pagkakasunod-sunod ng gastos.
Bakit sinisisi ng parser ang opsyon
Bawat linya ng configuration ay hinahati sa mga espasyo at sa mga quote bago pa ito makita ng anumang opsyon. Kaya ang halagang may espasyo ay dumarating bilang ilang argumento maliban kung nabalot ito, at ang opsyong may-ari ng linya ang nag-uulat ng hindi pagkakatugma. Sa Windows ginagawa itong tiyak ng default na folder ng pag-install, dahil ang C:\Program Files ay nasa gitna ng path ayon sa pagkakabuo. Hindi kailanman binubuksan ang sertipiko sa pagkabigong ito, kaya ang pagsuri kung may file ay walang pinapatunayang kapaki-pakinabang.
Karaniwang tama ang iniulat na numero ng linya, at ang iniulat na opsyon ay ang gumamit ng linya. Kapag ang binanggit na opsyon ay isang alam mong hindi mo kailanman isinulat, basahin ang linya sa itaas nito, dahil ang nawalang quote sa naunang bloke ay naglilipat ng pag-parse. Ganoon naisisi sa bloke ng sertipiko ang bilang ng argumento sa huli.
ca C:\Program Files\OpenVPN\config\office-ca.crtLagyan ng quote ang bawat path na may espasyo
Isang pares ng dobleng quote sa paligid ng halaga ang buong pag-aayos, at tinatanggap sa Windows ang mga slash, kaya hindi kailanman nagiging bahagi ng problema ang pag-escape. Ayusin ang bawat opsyon ng path sa isang pagdaan, dahil humihinto ang parser sa unang pagkabigo at ang susunod ay naghihintay lamang sa susunod na pag-restart. Karaniwang kasama sa set ang ca, cert, key, tls-auth at 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"Ang paghahanap sa pangalan ng folder ay nakakahanap ng bawat paglitaw nang mas mabilis kaysa pagbasa ng file. Patakbuhin ito bago ang anumang pag-edit, upang maging kumpleto ang listahan:
Select-String -Path .\office.ovpn -Pattern 'Program Files'Ang paglipat ng profile sa path na walang espasyo ay wastong alternatibo, at wasto lamang ito kung lilipat ang bawat path kasama nito. Ang kalahating nailipat na profile ay nagpaparami ng parehong error sa ibang pangalan ng file, na mas mahirap mapansin dahil ang mensahe ay tumuturo na ngayon sa path na kalilangan mong ginawa. Pumili ng isang paraan at tapusin ito.
Ibalik ang deklarasyon ng mode bago ang mga sertipiko
Ang pangalawang karaniwang dahilan ay nagbibigay ng ibang mensahe na may parehong nasayang na hapon. Ang profile ng kliyente ay dapat magpahayag ng mode nito malapit sa itaas, at ang deklarasyong iyon ay madaling mawala kapag ang mga bloke ng sertipiko lamang ang ipinapasok sa bagong file. Kung wala ito, binabasa ng OpenVPN ang file sa ibang set ng default, at ang pinsala ay lumilitaw nang mas huli bilang hidwaan sa pagitan ng mga opsyon o bilang bigong pag-log in. Ang nawawalang linya ay mura upang suriin at mahal upang kalimutan.
client
dev tun
proto udp
remote vpn.example.net 1194Panatilihin ang isang direktiba bawat linya habang naroon ka. Ang pinagsamang linya ay nagbibigay ng eksaktong error sa bilang ng argumento mula sa unang bahagi, at ang iniulat na linya ay mukhang makatwiran dahil nangyari ang pagsasama sa lugar kung saan binali ng editor ang teksto. Basahin ang hilaw na linya, hindi ang ipinakita.
Ang pinsala ng encoding ay mukhang pangalan ng opsyon
Ang file na na-save bilang UTF-16, kasama ang byte order mark, ay nagtatago ng unang opsyon nito mula sa parser, at ang mga naliligaw na byte ay maaaring dumikit sa pangalan ng opsyon sa mensahe. I-save ang file bilang UTF-8 na walang byte order mark, pagkatapos ay buksan itong muli at tiyakin na ang unang karakter ay ordinaryong titik. Ang mga editor, ang redirect ng PowerShell at ang tekstong na-paste mula sa chat window ay nagbabago ng encoding nang hindi nagtatanong.
Format-Hex .\office.ovpn | Select-Object -First 1Ang byte order mark ay lumilitaw bilang nangungunang byte ng marka bago ang anumang teksto, at ang pagbura ng mga karakter na iyon sa kamay ay natatalong hakbang dahil isinusulat muli ito ng editor sa susunod na pag-save. Sa halip, i-save muli ang file na may tahasang encoding. Ang mga dulo ng linya ay mas mapagparaya, ngunit ang file na walang bagong linya sa dulo ay maaari pa ring pagsamahin ang huling direktiba sa nauna pagkatapos ng pag-edit.
Aling pagsusuri muna, at bakit
Magsimula sa encoding, dahil isang utos lamang ang halaga nito at binabalewala nito ang anumang ibang pagbasa ng file. Pagkatapos ang mga quote, pagkatapos ang deklarasyon ng mode at ang iba pang sapilitang direktiba, at pagkatapos lamang niyon ang mga sertipiko, susi at kredensyal. Ang pagtatrabaho sa ganoong pagkakasunod-sunod ay nagpapanatiling maibabalik ang bawat hakbang, dahil ang sertipikong pinalitan upang ayusin ang problema sa quote ay nag-iiwan ng gumaganang pag-install na may bagong sira na dalawang pag-edit ang layo mula sa orihinal. Ang pagkakasunod-sunod ay mas mahalaga kaysa sa mga indibidwal na pagsusuri.
Magtabi ng hindi nagalaw na kopya ng file gaya ng inihatid ng operator. Kung sisirain ito ng susunod na pag-edit, ang pagkakaiba laban sa kopyang iyon ay magpapakita kung may gumalaw na quote, bagong linya o byte ng marka, na mas mabilis kaysa muling basahin ang error. Ang sanggunian ng mga opsyon para sa bawat direktiba ay nasa manwal ng OpenVPN para sa naka-install na bersyon.