Dua sijil klien dengan nombor siri berbeza, kunci berbeza dan juga subjek penuh berbeza masih boleh berakhir pada satu fail dasar yang sama, kerana pelayan tidak melihat mana-mana daripada itu. Pelayan membaca nama daripada sijil itu dan membuka fail konfigurasi klien yang sepadan. Jika kedua-dua sijil membawa nama yang sama, sijil kedua mewarisi dasar sijil pertama sebaik sahaja ia bersambung.

Pertembungan ini tercipta semasa pendaftaran dan hanya ditemui semasa sambungan, lazimnya apabila sesuatu peranti menerima alamat atau set laluan milik mesin lain. Untuk mengelakkannya, perlu dipersetujui medan mana yang dipetakan oleh pelayan, kemudian nilai itu ditempah sebelum apa-apa ditandatangani.

Alat sijil anda tidak akan memberi amaran, kerana keunikan dalam X.509 dan keunikan nama dasar OpenVPN ialah keperluan berbeza yang dikuatkuasakan oleh sistem berbeza.

Pelayan mencari nama, bukan cap jari

Dalam pemetaan berasaskan sijil yang lazim, pelayan mengambil nama umum daripada sijil yang dikemukakan dan mencari fail dengan nama itu dalam direktori konfigurasi kliennya. Fail itu boleh memakukan alamat statik, menolak laluan atau menggunakan tanda tembok api bagi setiap klien. Carian ialah padanan rentetan dengan nama fail, jadi huruf besar kecil, ruang dan tanda baca semuanya penting.

Sesetengah penggunaan sengaja menukar pemetaan supaya nama pengguna yang disahkan mengambil alih nama umum, dan ketika itu nama pengguna itulah yang mesti unik. Walau apa pun, nilai yang memilih dasar ialah nilai yang anda tempah. Tentukan yang mana satu sebelum mengeluarkan apa-apa; meneka selepas pertembungan lebih mahal daripada bertanya.

Apabila dua pihak berkuasa bertemu pada nama yang sama

Organisasi yang menerima sijil daripada lebih daripada satu pihak berkuasa pengeluar menjalankan dua proses pendaftaran bebas yang menulis ke dalam satu ruang nama. Peraturan keunikan setiap pihak berkuasa terpakai di dalam dirinya sendiri, jadi kedua-duanya boleh mengeluarkan secara sah bagi nama umum yang sama tanpa mana-mana menyedari sesuatu yang tidak kena.

Nombor siri tidak membantu. X.509 menghendaki nombor siri unik dalam skop pengeluarannya, iaitu sifat perakaunan pihak berkuasa itu dan bukan identiti peranti sejagat. Pemeriksaan subjek juga berbeza daripada pemeriksaan nama umum: dua sijil boleh berkongsi CN tetapi berbeza dalam unit organisasi dan oleh itu membawa subjek yang berlainan. Semua sifat itu boleh dipenuhi sementara pelayan masih memetakan kedua-dua sijil kepada satu nama fail.

Dokumentasi OpenSSL CA merangkumi tetapan unique_subject yang mengawal pendapat pangkalan datanya sendiri, dan titik permulaan yang jujur ialah membaca konfigurasi pengeluaran anda dan bukannya menganggap bahawa lalai EasyRSA atau OpenSSL tertentu terpakai.

Tempah nama berkesan sebelum menandatangani

Simpan daftar yang memetakan peranti kepada rekod yang diluluskan dan dari situ kepada nama fail dasar yang tepat, supaya sesuatu nama diperuntukkan sekali dan kekal diperuntukkan. Tempahan itu mesti atomik, yang dalam praktiknya bermaksud kekangan pangkalan data atau kunci di sekeliling langkah peruntuk-kemudian-tandatangan, bukan hamparan yang diedit oleh dua orang.

Kemudian jadikan pemeriksaan itu sebahagian daripada pengeluaran: tolak menandatangani apabila nama yang diminta sudah wujud, dan sertakan setiap pihak berkuasa yang dipercayai oleh pelayan dalam pemeriksaan itu, kerana nama yang ditempah oleh pihak berkuasa lain juga sama terpakai. Permintaan yang ditolak dengan sebab yang jelas lebih murah daripada tiket tentang peranti yang terus menerima alamat statik orang lain.

Pembaharuan menggunakan semula nama dengan sengaja

Pengeluaran semula untuk peranti sedia ada sepatutnya menghasilkan nombor siri baharu di bawah nama dasar yang sama, dan itu ialah penggunaan semula yang sah, bukan pertembungan. Yang perlu diputuskan lebih awal ialah pertindihan: sama ada sijil lama dan baharu boleh sah serentak, dan bagaimana kelayakan lama ditarik balik.

Jangan mencapai duplicate-cn untuk menyelesaikan ini. Pilihan pelayan itu mengawal sambungan serentak yang mengemukakan nama yang sama; ia tidak mengunci pendaftaran, dan mendayakannya tidak menjadikan satu alamat statik kongsi selamat untuk dua mesin serentak. Pembatalan lazimnya mengenal pasti sijil melalui pengeluar dan nombor siri, jadi menarik balik kelayakan lama tidak perlu membatalkan penggantinya selagi pelayan menerima dan menguatkuasakan data pembatalan yang betul.

Sahkan pemetaan dengan alat pada mesin

Sebelum menyerahkan kelayakan baharu kepada sesuatu peranti, baca nama daripada sijil seperti yang akan dilakukan oleh pelayan, kemudian bandingkannya dengan fail dasar yang anda jangkakan akan dipilih.

openssl x509 -in device42.crt -noout -subject -nameopt sep_multiline
ls -l /etc/openvpn/ccd/device42
grep -n "duplicate-cn" /etc/openvpn/server.conf

Perintah pertama mencetak medan subjek secara berasingan, yang menjadikan unit organisasi tersesat atau ruang berganda kelihatan serta-merta. Yang kedua mengesahkan bahawa fail dasar wujud di bawah nama itu dengan tepat, dan yang ketiga menunjukkan sama ada pelayan dikonfigurasikan untuk membenarkan beberapa sesi pada satu nama. Jalankan ketiga-tiganya pada sijil baharu sebelum ia meninggalkan langkah pendaftaran, selagi kesilapan masih berharga satu tandatangan dan bukan insiden. Simpan output bersama tiket supaya orang seterusnya dapat melihat nama mana yang benar-benar diterima oleh pelayan.

Akhiri dengan sambungan sebenar dan bandingkan alamat yang diberikan serta laluan yang ditolak dengan fail dasar, bukan dengan apa yang anda maksudkan untuk ditulis. Jika dua peranti melaporkan alamat statik yang sama, daftar itu mempunyai pertembungan yang tidak akan didedahkan oleh mana-mana pemeriksaan sijil.

Artikel berkaitan