Sijil klien yang ditandatangani sendiri? Pelayan VPN masih menolaknya
Sijil klien mesti berantai kepada CA yang dipercayai pelayan, dan sijil yang ditandatangani sendiri tidak akan pernah. Berikut ialah apa yang boleh dilakukan CSR dan apa yang perlu diminta.
Pengendali menghantar alamat dan nama pengguna, dan klien meminta fail CA, sijil dan kunci. Menjana ketiga-tiganya secara setempat terasa seperti langkah seterusnya yang jelas. Hasilnya sijil yang hanya dipercayai mesin anda sendiri. Kepercayaan pelayan berakar pada CA yang anda tidak kawal, jadi jabat tangan berakhir sebelum bermula.
Kepercayaan tinggal pada pelayan, bukan dalam profil anda
Pengesahan sijil ialah perbandingan. Klien mengemukakan sijil; get laluan memeriksa sama ada ia ditandatangani oleh salah satu CA dalam konfigurasinya.
Profil anda menamakan fail CA yang klien patut gunakan untuk mengesahkan pelayan. Ia tidak boleh menamakan CA yang pelayan patut gunakan untuk mengesahkan anda. Separuh konfigurasi itu bukan milik anda.
Sijil buatan sendiri gagal dalam perbandingan ini walaupun ia sempurna dari segi teknikal. Ia mempunyai tandatangan sah, subjek dan tarikh, tetapi pengeluar ialah CA yang get laluan tidak pernah dengar. Ralat muncul semasa jabat tangan, selepas pelayan sudah meminta sijil. Tiada apa dalam profil klien boleh mengubah jawapannya.
Mengapa sijil yang ditandatangani sendiri tidak boleh menggantikannya
Sijil yang ditandatangani sendiri ditandatangani oleh kuncinya sendiri. Tandatangan disahkan terhadap fail yang sama, menjadikannya konsisten dengan dirinya sendiri dan tidak berguna sebagai kelayakan untuk get laluan orang lain.
Get laluan tidak bertanya sama ada sijil itu konsisten dalaman. Ia bertanya sama ada pengeluar yang dipercayai menandatanganinya.
Itulah sebabnya mesej ralat mengelirukan. Klien mungkin melaporkan kegagalan pengesahan yang kedengaran seperti masalah pelayan, sementara pelayan merekodkan pengeluar yang tidak dikenali. Kedua-duanya menerangkan ketidakpadanan yang sama dari hujung yang bertentangan.
Laluan CSR menyimpan kunci peribadi anda
Anda masih boleh melakukan sebahagian besar kerja secara setempat. Jana pasangan kunci, bina permintaan tandatangan sijil di sekitar separuh awam, dan hantar permintaan itu kepada pengendali. Hanya permintaan meninggalkan mesin anda. Separuh peribadi kekal di tempat anda menjananya.
openssl req -new -newkey rsa:3072 -nodes -keyout client.key -out client.csr -subj "/CN=laptop-01"
Pengendali menandatangani permintaan dengan CA mereka dan mengembalikan sijil. Kunci peribadi anda tidak pernah bergerak, dan hasilnya berantai kepada sauh yang dipercayai get laluan.
Perkhidmatan terurus sering melangkau CSR dan mengeluarkan keseluruhan bundel. Itu pertukaran yang munasabah apabila penyedia yang sama sudah menamatkan terowong dan memegang CA. Penyimpanan kunci tidak bertambah baik dengan menyimpannya, kerana penyedia boleh menempa yang baharu pada bila-bila masa.
Bundel diimport, bukan dipasang
Bundel vendor dengan nama yang kedengaran selamat selalunya profil OpenVPN. Ia mengandungi konfigurasi dan kadangkala sijil, dan ia tidak memasang apa-apa. Import fail itu ke dalam klien yang bertutur protokol tersebut, dan sambungan itu dikonfigurasikan.
Peraturan pengendalian berpunca daripada kandungan. Jika profil membenamkan kunci peribadi, ia ialah kelayakan dan wajar mendapat penjagaan yang sama seperti kata laluan: tiada e-mel, tiada repositori, tiada folder muat turun dikongsi. Apabila pengendali membekalkan ca.crt, client.crt dan client.key secara berasingan, simpan semuanya bersama dengan kebenaran terhad dan halakan profil kepadanya.
Tambah pemeriksaan yang mungkin dilangkau oleh pengendali
Profil yang dijana oleh penghala kadangkala tiada pengesahan rakan. remote-cert-tls server memerlukan sijil rakan membawa tujuan pengesahan pelayan, supaya sijil klien tidak boleh dimainkan semula sebagai pelayan. Satu baris itu ialah perubahan kecil dengan justifikasi yang jelas.
verify-x509-name melangkah lebih jauh apabila pengendali boleh menamakan subjek atau SAN yang dijangka. Kedua-duanya penambahan kecil pada profil, dan kedua-duanya boleh dipertahankan. Periksa apa yang anda terima sebelum mengimportnya.
openssl x509 -in client.crt -noout -issuer -subject -dates
openssl verify -CAfile ca.crt client.crt
Tetapan pengesahan bukan pembaikan bagi rantai yang rosak. Jika pengeluarnya salah, jawapannya ialah sijil daripada CA yang betul, bukan bendera yang mematikan pemeriksaan. Mematikan pengesahan mengubah kegagalan pengesahan menjadi kegagalan yang tidak dikesan.
Minta satu bundel: sijil pihak berkuasa dalam bentuk PEM, sijil klien yang ditandatangani oleh pihak berkuasa itu, kunci yang anda jana sendiri atau yang tiba melalui saluran yang anda percayai, dan nama pelayan tepat yang patut dikemukakan oleh sijil. Catat tarikh luput dalam mesej yang sama, kerana sijil yang luput kelihatan seperti kerosakan rangkaian berbulan-bulan kemudian.