Windows-da OpenVPN niyə ’ca’ deyir: dırnaqsız yol, pis sertifikat deyil
Dırnağa alınmamış Program Files yolu bir neçə arqumentə bölünür və parser opsiyanı günahlandırır. Dırnaqları, müştəri sətrini və kodlaşdırmanı yoxlayın.
OpenVPN başlamır və xəta mesajı tam normal görünən bir sətri göstərir: Unrecognized option or missing or extra parameter(s) in office.ovpn:42: ca. Sertifikat dəyişməyib, fayl redaktorda açılır və yolda qəribə heç nə yoxdur. Parser opsiya adına etiraz etmir; o, həmin adla birlikdə neçə arqumentin gəldiyinə etiraz edir. Dörd yoxlama bunun demək olar hər halını həll edir və onları xərc sırası ilə aparmağa dəyər.
Parser niyə opsiyanı günahlandırır
Hər konfiqurasiya sətri hansısa opsiyaya çatmazdan əvvəl boşluqlara və dırnaqlara görə bölünür. Buna görə boşluq ehtiva edən dəyər dırnağa alınmayıbsa bir neçə arqument kimi gəlir və həmin sətrə sahib olan opsiya uyğunsuzluğu bildirir. Windows-da standart quraşdırma qovluğu bunu qaçılmaz edir, çünki C:\Program Files konstruksiyaya görə yolun ortasında durur. Bu xətada sertifikat heç vaxt açılmır, ona görə faylın mövcud olub-olmadığını yoxlamaq faydalı heç nə sübut etmir.
Bildirilən sətir nömrəsi adətən düzdür və bildirilən opsiya həmin sətri istehlak edən opsiyadır. Adı çəkilən opsiya heç vaxt yazmadığınızı bildiyiniz bir opsiyadırsa, ondan əvvəlki sətri oxuyun, çünki əvvəlki blokda itirilmiş dırnaq parsin yerini dəyişir. Sertifikat blokunun arqument sayına görə günahlandırılması belə baş verir.
ca C:\Program Files\OpenVPN\config\office-ca.crtBoşluq olan hər yolu dırnağa alın
Dəyərin ətrafına bir cüt ikiqat dırnaq qoymaq bütün düzəlişdir və Windows-da irəli əyri xətlər qəbul olunur, ona görə ekranlaşdırma heç vaxt problemin hissəsinə çevrilmir. Hər yol opsiyasını eyni keçiddə düzəldin, çünki parser ilk uğursuzluqda dayanır və növbəti biri sadəcə növbəti yenidən başlatmanı gözləyir. Dəst adətən bunları əhatə edir: ca, cert, key, tls-auth və 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"Qovluq adının axtarışı hər baş verməni faylı oxumaqdan daha sürətli tapır. Hər hansı düzəliş etməzdən əvvəl onu işə salın ki, siyahı tam olsun:
Select-String -Path .\office.ovpn -Pattern 'Program Files'Profili boşluqsuz yola köçürmək keçərli alternativdir və o, yalnız hər yol onunla birlikdə köçərsə keçərlidir. Yarım köçürülmüş profil eyni xətanı başqa fayl adı ilə təkrarlayır və bunu görmək daha çətindir, çünki mesaj artıq indicə yaratdığınız yolu göstərir. Bir yanaşma seçin və onu bitirin.
Sertifikatlardan əvvəl rejim bəyannaməsini bərpa edin
İkinci geniş yayılmış səbəb eyni itirilmiş günortaya başqa bir mesajla səbəb olur. Müştəri profili rejimini yuxarıya yaxın elan etməlidir və bu elan yalnız sertifikat blokları yeni fayla yapışdırıldıqda asanlıqla itir. O olmadan OpenVPN faylı başqa standart dəstlə oxuyur və ziyan çox sonra opsiyalar arasında ziddiyyət və ya giriş uğursuzluğu kimi üzə çıxır. İtirilmiş sətir yoxlamaq üçün ucuz, unutmaq üçün bahadır.
client
dev tun
proto udp
remote vpn.example.net 1194Orada olarkən hər sətirdə bir direktiv saxlayın. Birləşdirilmiş sətirlər birinci bölmədəki arqument sayı xətasını eynilə yaradır və bildirilən sətir ağlabatan görünür, çünki birləşmə redaktorun mətni içəri keçirdiyi yerdə baş verib. Göstərilən sətri deyil, xam sətri oxuyun.
Kodlaşdırma zədəsi opsiya adı kimi görünür
UTF-16 kimi saxlanmış və bayt sırası işarəsi olan fayl ilk opsiyasını parserdən gizlədir və kənar baytlar mesajda opsiya adına yapışa bilər. Faylı bayt sırası işarəsi olmadan UTF-8 kimi saxlayın, sonra yenidən açın və ilk simvolun normal hərf olduğunu təsdiqləyin. Redaktorlar, PowerShell yönləndirməsi və söhbət pəncərəsindən yapışdırılmış mətn hamısı kodlaşdırmanı soruşmadan dəyişir.
Format-Hex .\office.ovpn | Select-Object -First 1Bayt sırası işarəsi hər hansı mətndən əvvəl aparıcı işarə baytları kimi görünür və bu simvolları əl ilə silmək uduzan gedişdir, çünki redaktor növbəti yaddaşda onları geri yazır. Əvəzində faylı açıq kodlaşdırma ilə yenidən saxlayın. Sətir sonluqları daha bağışlayandır, amma sonunda yeni sətir olmayan fayl düzəlişdən sonra son direktivi yenə əvvəlkinə birləşdirə bilər.
Hansı yoxlama əvvəl aparılmalı və niyə
Kodlaşdırma ilə başlayın, çünki bir əmrdir və faylın bütün digər oxunuşlarını etibarsız edir. Sonra dırnaqlar, sonra rejim bəyannaməsi və digər məcburi direktivlər, və yalnız ondan sonra sertifikatlar, açarlar və etimad məlumatları. Bu sırada işləmək hər addımı geri qaytarıla bilən saxlayır, çünki dırnaq problemini düzəltmək üçün dəyişdirilmiş sertifikat işlək quraşdırmanı orijinaldan iki düzəliş uzaqda yeni bir nasazlıqla qoyur. Sıra ayrı-ayrı yoxlamalardan daha vacibdir.
Faylın operatorun göndərdiyi kimi toxunulmamış bir nüsxəsini saxlayın. Sonrakı düzəliş onu poza, həmin nüsxə ilə fərq dırnağın, yeni sətrin və ya işarə baytının yerinin dəyişdiyini göstərir və bu, xətanı yenidən oxumaqdan sürətlidir. Hər direktiv üçün opsiya arayışı quraşdırılmış versiyanın OpenVPN təlimatında var.