Зашто OpenVPN на Windows-у пријављује ca: путања без наводника, а не лош сертификат
Путања до Program Files без наводника дели се на неколико аргумената и парсер окривљује опцију. Проверите наводнике, линију клијента и кодирање.
OpenVPN се не покреће, а порука о грешци указује на линију која изгледа исправно: Unrecognized option or missing or extra parameter(s) in office.ovpn:42: ca. Сертификат се није променио, датотека се отвара у уређивачу, и ништа на путањи не изгледа погрешно. Парсер не оспорава назив опције; оспорава то колико је аргумената стигло са њом. Четири провере решавају скоро сваки такав случај, и вреди их извести по редоследу трошка.
Зашто парсер окривљује опцију
Свака линија конфигурације дели се на размаке и на наводнике пре него што је види било која опција. Зато вредност са размаком стиже као неколико аргумената ако није обухваћена наводницима, а опција којој је линија припадала пријављује неслагање. На Windows-у то чини сигурним подразумевани инсталациони директоријум, јер C:\Program Files по конструкцији стоји на средини путање. У овој грешци сертификат се никада не отвара, па провера да ли датотека постоји не доказује ништа корисно.
Пријављени број линије обично је тачан, а пријављена опција је она која је потрошила линију. Када је наведена опција она за коју знате да је никада нисте написали, прочитајте линију изнад ње, јер изгубљени наводник у ранијем блоку помера парсирање. Тако блок са сертификатом на крају буде окривљен за број аргумената.
ca C:\Program Files\OpenVPN\config\office-ca.crtСтавите наводнике око сваке путање са размаком
Један пар двоструких наводника око вредности је цела поправка, а на Windows-у се прихватају косе црте, па екранирање никада не постаје део проблема. Поправите сваку опцију путање у истом пролазу, јер парсер стаје на првом неуспеху, а следећа само чека следеће покретање. Скуп обично укључује ca, cert, key, tls-auth и 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"Претрага по називу директоријума проналази свако појављивање брже од читања датотеке. Покрените је пре било каквог уређивања, да списак буде потпун:
Select-String -Path .\office.ovpn -Pattern 'Program Files'Премештање профила на путању без размака је ваљана алтернатива, и ваљана је само ако се са њим премести свака путања. Полупремештен профил понавља исту грешку са другим именом датотеке, што је теже приметити јер порука сада указује на путању коју сте управо направили. Изаберите један приступ и довршите га.
Вратите декларацију режима пре сертификата
Други чест узрок даје другу поруку са истим потрошеним поподневом. Профил клијента мора да декларише свој режим близу врха, и та декларација се лако губи када се у нову датотеку убаце само блокови сертификата. Без ње OpenVPN чита датотеку са другим скупом подразумеваних вредности, а штета се појављује много касније као сукоб између опција или неуспешна пријава. Линија која недостаје јефтина је за проверу и скупа за заборав.
client
dev tun
proto udp
remote vpn.example.net 1194Држите једну директиву по линији док сте тамо. Спојене линије дају тачно грешку броја аргумената из првог одељка, а пријављена линија изгледа разумно јер се спајање догодило тамо где је уређивач преломио текст. Читајте сирову линију, а не приказану.
Оштећење кодирања изгледа као назив опције
Датотека сачувана као UTF-16, са ознаком редоследа бајтова, скрива своју прву опцију од парсера, а залутали бајтови могу да се залепе на назив опције у поруци. Сачувајте датотеку као UTF-8 без ознаке редоследа бајтова, затим је поново отворите и потврдите да је први знак обично слово. Уређивачи, преусмеравање у PowerShell-у и текст налепљен из прозора за разговор мењају кодирање без питања.
Format-Hex .\office.ovpn | Select-Object -First 1Ознака редоследа бајтова појављује се као водећи бајтови ознаке пре било каквог текста, и ручно брисање тих знакова је губитнички потез јер их уређивач враћа при следећем чувању. Уместо тога поново сачувајте датотеку са изричитим кодирањем. Завршеци линија су попустљивији, али датотека без новог реда на крају ипак може да споји последњу директиву са претходном после уређивања.
Коју проверу прво и зашто
Почните од кодирања, јер кошта једну команду и поништава свако друго читање датотеке. Затим наводници, потом декларација режима и остале обавезне директиве, и тек после њих сертификати, кључеви и акредитиви. Рад у том редоследу одржава сваки корак повратним, јер сертификат замењен ради исправке проблема са наводницима оставља радну инсталацију са новим кваром две измене од оригинала. Редослед је важнији од појединачних провера.
Чувајте недирнуту копију датотеке онаквом каквом ју је оператер доставио. Ако је касније уређивање поквари, разлика према тој копији показује да ли се померио наводник, нови ред или бајт ознаке, што је брже од поновног читања грешке. Референце опција за сваку директиву су у приручнику OpenVPN-а за инсталирану верзију.