Import gagal dengan ralat sijil, jadi langkah yang jelas kelihatan seperti penukaran. Naluri itu membawa orang ke laluan di mana sambungan fail berubah dan penolakan kekal sama. Baris ssh-ed25519 dalam authorized_keys dan sijil klien OpenVPN ialah objek kelayakan yang berasingan, dengan pengeluar berbeza, pengekodan berbeza dan laluan pembatalan berbeza. Menjalankan semakan ini mengikut urutan memberitahu anda dalam satu minit sama ada penukaran boleh membantu langsung.

Objek mana yang sebenarnya anda pegang?

Ada lima perkara yang orang panggil kunci, dan hanya satu daripadanya ialah apa yang profil TLS mahukan. Kunci awam SSH ialah satu baris teks dengan awalan jenis dan muatan base64. Sijil OpenSSH ialah kunci itu serta tandatangan, principals dan pilihan, yang dihasilkan oleh ssh-keygen bertindak sebagai CA kecilnya sendiri. Sijil X.509 ialah struktur yang sama sekali berbeza, membawa subjek, tetingkap kesahan, sambungan dan tandatangan daripada pihak berkuasa sijil. Kunci peribadi ialah separuh rahsia, dan berkas yang dikeluarkan biasanya sijil serta rantainya serta kunci peribadi dalam satu fail.

Ujian pertama hanya memerlukan satu arahan. Halakan openssl ke fail itu dan minta ia menghurai struktur sijil:

openssl x509 -in client.crt -noout -subject -issuer

Jika itu gagal dengan ralat tidak dapat dimuatkan atau PEM, fail itu bukan sijil X.509 apa pun nama yang anda berikan. Menukar nama tidak menulis semula ASN.1 di dalamnya, dan membalut baris kunci awam dalam teks pengepala PEM juga tidak.

Adakah profil itu meminta sijil langsung?

Sijil klien ialah satu kaedah pengesahan antara beberapa, dan banyak profil TLS yang berfungsi tidak pernah meminta satu. Pelayan boleh mengesahkan pengguna melalui pemalam, nama pengguna dan kata laluan, atau backend token, sambil masih menuntut klien mengesahkan identiti pelayan. Jika profil tidak membawa arahan sijil klien, tiada sijil akan diminta, dan tiada penukaran akan membuat gerbang meminta satu.

Konfigurasi kunci statik yang lebih lama ialah kes ketiga. Ia mendahului jabat tangan TLS dan menjangka fail rahsia yang dikongsi terlebih dahulu, sebab itulah menampal kunci awam ke dalam medan itu juga tidak boleh berfungsi. Baca apa yang profil itu sebenarnya minta sebelum memutuskan kelayakan itu salah.

Apa yang boleh dan tidak boleh dilakukan oleh pengekodan semula

Kunci peribadi memang mempunyai bekas alternatif yang sah. Kunci RSA atau EC yang sama boleh ditulis sebagai PEM tradisional, sebagai PKCS#8, atau di dalam berkas PKCS#12, dan alat akan menukar antaranya dengan senang hati. Kunci awam mempunyai kisah yang serupa: ssh-keygen boleh mengeluarkan bentuk RFC 4716 bagi kunci SSH, dan OpenSSH juga memahami format sijilnya sendiri. Semua itu ialah perwakilan, dan perwakilan bukan kepercayaan.

Apa yang penukaran tidak boleh lakukan ialah mencipta tandatangan daripada pihak berkuasa sijil yang tidak pernah melihat kunci anda. Sijil ialah dakwaan pengeluar bahawa kunci awam tertentu milik subjek tertentu untuk tujuan tertentu. Pengekodan semula mengekalkan bait kunci dan membiarkan dakwaan itu tiada, jadi gerbang tiada apa untuk disahkan terhadap stor kepercayaannya.

Inilah langkah di mana kebanyakan percubaan gagal secara senyap: fail kini berakhir dengan .crt, klien membacanya tanpa aduan, dan jabat tangan masih terhenti kerana pihak lawan tidak dapat membina rantai kepada pengeluar yang dipercayai.

Di mana pihak berkuasa sijil masuk ke dalam gambaran

Pendaftaran sebenar bermula dengan pasangan kunci yang anda kawal dan permintaan tandatangan sijil yang membawa subjek yang dijangka oleh pengendali. Pengendali mengesahkan hak, menandatangani permintaan itu dengan kunci CA, dan mengembalikan sijil yang dikeluarkan bersama mana-mana rantai perantaraan yang klien mesti kemukakan. Klien kemudian memerlukan sijil CA yang menandatanganinya, kerana itulah yang membolehkannya mengesahkan bahawa pelayan yang dia bercakap dengannya tergolong dalam penggunaan yang sama.

Fail terakhir itu mudah dilupakan dan mustahil diganti. Kunci tandatangan CA itu sendiri tidak pernah tergolong dalam konfigurasi klien, dan tiada jumlah penukaran setempat menghasilkan rantai yang sepatutnya anda terima.

Apa kos penggunaan semula kunci SSH kepada anda

Katakan satu penukaran memang menghasilkan sesuatu yang boleh diterima. Menggunakan semula satu pasangan kunci untuk akses SSH dan pengesahan VPN masih menggandingkan dua keputusan keselamatan yang bebas. Mengeluarkan satu entri authorized_keys menghentikan log masuk SSH, dan ia tidak melakukan apa-apa kepada sijil yang CA VPN sudah keluarkan untuk kunci awam yang sama. Bahagian VPN dibatalkan melalui mekanismenya sendiri, iaitu senarai pembatalan sijil atau rekod pendaftaran pengendali.

Jadi senarai semak berakhir dengan syarat berhenti, bukan helah. Jika openssl tidak menghurai fail itu sebagai sijil, hentikan penukaran dan jelaskan apa yang anda ada: kunci SSH, sijil SSH, sijil X.509, kunci peribadi atau berkas. Jika profil tidak meminta sijil klien, berhenti dan tanya kaedah pengesahan mana yang pelayan jangkakan. Hanya apabila kedua-dua jawapan menunjuk kepada X.509 barulah pendaftaran menjadi langkah seterusnya, dan perbualan itu berjalan jauh lebih pantas dengan kata nama yang betul dalam ayat pertama.

Artikel berkaitan