Mengapa cryptoapicert gagal di OpenVPN 3 dan Connect pada Windows
Direktif ini milik satu klien Windows, bukan protokolnya. Pustaka inti menyediakan callback penandatanganan, dan frontend punya alur impornya sendiri.
Anda menyalin profil OpenVPN 2 yang berfungsi ke klien Windows yang lebih baru, dan sertifikat yang dulu ditemukan klien lama dengan sendirinya tidak lagi ditawarkan. Baris yang membuatnya berhasil adalah pemilih khusus Windows milik klien Community 2, dan aplikasi yang lebih baru adalah program lain dengan jalur kredensial yang berbeda. Profilnya tidak berubah selain baris itu, dan itulah yang membuat perbedaannya sulit terlihat.
Tiga lapisan tercampur dalam laporan itu: klien Community, pustaka inti, dan frontend yang dipasang seseorang. Hanya satu di antaranya yang pernah memahami direktif itu.
Apa arti opsi itu di tempat ia ada
Di klien Community OpenVPN 2 pada Windows, cryptoapicert menamai sertifikat yang harus dicari klien di penyimpanan sertifikat Windows, bukan di berkas. Ini kemudahan khusus Windows, dan berhasil karena klien itu tahu cara menyebutkan isi penyimpanan dan menyerahkan kunci yang dihasilkan ke tumpukan TLS miliknya sendiri. Jadi direktif itu bagian dari bahasa konfigurasi klien tersebut, bukan properti protokol OpenVPN. Tidak ada apa pun dalam format pengiriman yang membawanya.
Salin baris yang sama ke aplikasi lain dan Anda telah menyalin kata yang mungkin diurai, diabaikan, atau ditolak program baru. Direktif bukan fitur protokol, dan yang ini bahkan bukan fitur setiap klien yang berbicara OpenVPN.
Apa yang disediakan pustaka inti sebagai gantinya
OpenVPN 3 Core adalah pustaka yang disematkan aplikasi lain, dan menangani kredensial eksternal melalui API, bukan pencarian di penyimpanan. Aplikasi yang menyematkannya menyediakan rantai sertifikat dan kemudian meminta pustaka menandatangani dengan kunci eksternal, dan pustaka memanggil balik aplikasi untuk melakukannya. Itu desain yang lebih umum, dan berarti frontend yang memutuskan penyedia mana yang ada. Dalam penanganan opsi pustaka itu sendiri, cryptoapicert muncul di antara direktif yang tidak diimplementasikan, yang konsisten dengan pembagian tanggung jawab tersebut.
Adanya callback itu tidak berarti aplikasi terpaket tertentu menyebutkan isi penyimpanan pribadi pengguna saat ini, mendukung penyedia kunci tertentu, atau dapat menyelesaikan permintaan kartu pintar. Itu properti frontend, dan masing-masing harus didokumentasikan oleh frontend.
Apa yang dilakukan frontend Windows sebagai gantinya
OpenVPN Connect menempuh jalur lain: operator mengimpor berkas PKCS#12 yang berisi sertifikat dan kunci privatnya ke OpenVPN Certificate Store yang dibuat untuk tujuan itu, lalu menetapkan sertifikat eksternal ke profil. Itu langkah impor yang disengaja, bukan penemuan otomatis atas apa pun yang kebetulan ada di penyimpanan pribadi. Perbedaannya penting ketika seseorang menganggap sertifikat yang dipasang untuk tujuan lain akan muncul begitu saja di daftar klien.
Impor itu juga berdampak pada kebijakan kunci, karena mengekspor kunci ke berkas P12 justru hal yang hendak dicegah kunci yang tidak dapat diekspor. Ini pertanyaan kebijakan, bukan konfigurasi, dan pantas dijawab sebelum siapa pun mencoba impor.
Pilih jalur yang sesuai dengan kebijakan kunci
Jika kredensial dapat diekspor dan kebijakan mengizinkan impor yang didokumentasikan, gunakan proses pendaftaran terlindung organisasi dan jaga P12 sementara serta kata sandinya di luar log dan skrip. Jika kunci tidak boleh pernah meninggalkan kartu pintar atau penyedia terlindung, pilih kombinasi klien dan penyedia yang secara eksplisit mendukung persyaratan itu, atau dapatkan konfirmasi dari vendor untuk versi yang Anda pasang. Tak satu pun cabang menjadi jalan pintas bagi yang lain.
Menambahkan direktif itu kembali ke profil tidak dapat menyediakan integrasi yang tidak dimiliki aplikasi. Versi klien yang lebih baru juga tidak selalu menambahkannya, karena kemampuan itu milik desain frontend sendiri.
Setelah kunci lokal berfungsi, server tetap memeriksa identitas sertifikat, rantai, dan otorisasi. Kunci lokal yang dapat dipakai dan identitas VPN yang diterima adalah hasil terpisah, dan menjaga keduanya tetap terpisah itulah yang mencegah keterbatasan frontend berubah menjadi kebijakan sertifikat yang melemah.