Mengapa OpenVPN di Windows mengatakan ca: jalur tanpa tanda kutip, bukan sertifikat rusak
Jalur Program Files tanpa tanda kutip terpecah menjadi beberapa argumen, dan pengurai menyalahkan opsi. Periksa tanda kutip, baris klien, dan pengodean.
OpenVPN tidak mau mulai, dan pesan kegagalan menunjuk baris yang tampak benar: Unrecognized option or missing or extra parameter(s) in office.ovpn:42: ca. Sertifikat tidak berubah, berkas terbuka di editor, dan tidak ada yang tampak salah pada jalur. Pengurai tidak mempersoalkan nama opsi; ia mempersoalkan berapa banyak argumen yang datang bersamanya. Empat pemeriksaan menyelesaikan hampir setiap kasus seperti ini, dan sebaiknya dijalankan menurut urutan biaya.
Mengapa pengurai menyalahkan opsi
Setiap baris konfigurasi dipecah pada spasi dan pada tanda kutip sebelum opsi mana pun melihatnya. Karena itu nilai yang berisi spasi datang sebagai beberapa argumen kecuali dibungkus, dan opsi pemilik baris melaporkan ketidakcocokannya. Di Windows direktori pemasangan bawaan memastikannya, karena C:\Program Files berada di tengah jalur secara struktural. Sertifikat tidak pernah dibuka pada kegagalan ini, jadi memeriksa apakah berkas itu ada tidak membuktikan apa pun yang berguna.
Nomor baris yang dilaporkan biasanya benar, dan opsi yang dilaporkan adalah yang menghabiskan baris itu. Ketika opsi yang disebut adalah opsi yang Anda tahu tidak pernah Anda tulis, bacalah baris di atasnya, karena tanda kutip yang hilang di blok sebelumnya menggeser penguraian. Begitulah blok sertifikat akhirnya disalahkan atas jumlah argumen.
ca C:\Program Files\OpenVPN\config\office-ca.crtBeri tanda kutip pada setiap jalur yang mengandung spasi
Satu pasang tanda kutip ganda di sekitar nilai adalah seluruh perbaikannya, dan garis miring depan diterima di Windows, sehingga escape tidak pernah menjadi bagian dari masalah. Perbaiki setiap opsi jalur dalam lintasan yang sama, karena pengurai berhenti pada kegagalan pertama dan yang berikutnya hanya menunggu mulai ulang berikutnya. Kumpulan ini biasanya mencakup ca, cert, key, tls-auth dan 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"Pencarian nama direktori menemukan setiap kemunculan lebih cepat daripada membaca berkasnya. Jalankan sebelum penyuntingan apa pun, agar daftarnya lengkap:
Select-String -Path .\office.ovpn -Pattern 'Program Files'Memindahkan profil ke jalur tanpa spasi adalah alternatif yang sah, dan hanya sah jika setiap jalur ikut pindah. Profil yang setengah dipindahkan mengulang kesalahan yang sama dengan nama berkas lain, yang lebih sulit dikenali karena pesannya kini menunjuk jalur yang baru saja Anda buat. Pilih satu pendekatan dan selesaikan.
Pulihkan deklarasi mode sebelum sertifikat
Penyebab umum kedua menghasilkan pesan berbeda dengan sore yang sama-sama terbuang. Profil klien harus mendeklarasikan modenya di dekat bagian atas, dan deklarasi itu mudah hilang bila hanya blok sertifikat yang disalin ke berkas baru. Tanpa itu OpenVPN membaca berkas dengan kumpulan bawaan yang berbeda, dan kerusakannya muncul jauh kemudian sebagai konflik antaropsi atau kegagalan masuk. Baris yang hilang murah untuk diperiksa dan mahal untuk dilupakan.
client
dev tun
proto udp
remote vpn.example.net 1194Pertahankan satu direktif per baris selama Anda di sana. Baris yang digabung menghasilkan tepat kesalahan jumlah argumen dari bagian pertama, dan baris yang dilaporkan tampak wajar karena penggabungan terjadi di tempat editor mematahkan teks. Bacalah baris mentahnya, bukan yang ditampilkan.
Kerusakan pengodean tampak seperti nama opsi
Berkas yang disimpan sebagai UTF-16, lengkap dengan tanda urutan byte, menyembunyikan opsi pertamanya dari pengurai, dan byte nyasar dapat menempel pada nama opsi di pesan. Simpan berkas sebagai UTF-8 tanpa tanda urutan byte, lalu buka lagi dan pastikan karakter pertama adalah huruf biasa. Editor, pengalihan PowerShell, dan teks yang ditempel dari jendela obrolan semuanya mengubah pengodean tanpa bertanya.
Format-Hex .\office.ovpn | Select-Object -First 1Tanda urutan byte muncul sebagai byte penanda di awal sebelum teks apa pun, dan menghapus karakter itu dengan tangan adalah langkah yang kalah karena editor menuliskannya kembali saat penyimpanan berikutnya. Simpan ulang berkas dengan pengodean eksplisit sebagai gantinya. Akhir baris lebih pemaaf, tetapi berkas tanpa baris baru di akhir masih bisa menggabungkan direktif terakhir ke direktif sebelumnya setelah penyuntingan.
Pemeriksaan mana lebih dulu, dan mengapa
Mulai dari pengodean, karena hanya perlu satu perintah dan membatalkan setiap pembacaan berkas lainnya. Lalu tanda kutip, kemudian deklarasi mode dan direktif wajib lainnya, dan baru setelahnya sertifikat, kunci, serta kredensial. Bekerja dalam urutan itu membuat setiap langkah dapat dibalik, karena sertifikat yang diganti untuk memperbaiki masalah tanda kutip meninggalkan pemasangan yang berfungsi dengan kegagalan baru yang berjarak dua penyuntingan dari aslinya. Urutannya lebih penting daripada pemeriksaan satu per satu.
Simpan salinan berkas yang belum tersentuh sebagaimana operator mengirimkannya. Jika penyuntingan berikutnya merusaknya, perbedaan dengan salinan itu menunjukkan apakah tanda kutip, baris baru, atau byte penanda bergeser, yang lebih cepat daripada membaca ulang kesalahannya. Rujukan opsi setiap direktif ada di manual OpenVPN versi yang terpasang.