Penelusuran dimulai di daftar sertifikat klien, tempat entri hanya menampilkan nama, penerbit, dan tanggal kedaluwarsa. Ekspor entri itu, impor di perangkat kedua, dan koneksi ditolak karena klien tidak dapat membuktikan kepemilikan kunci privat. Berkasnya tersalin utuh; kesalahannya adalah mengira sertifikat membawa kuncinya sendiri. Baca dialog ekspor sebelum memilih format, lalu periksa berkas yang benar-benar Anda terima.

Dua klik, dua artefak yang sangat berbeda.

Baca dialog ekspor, bukan akhiran berkas

Ekspor sertifikat DER atau PEM berisi kunci publik dan klaim identitas yang ditandatangani, yaitu yang dibutuhkan server untuk memercayai Anda dan yang dibutuhkan klien untuk memverifikasi server. Bundel PKCS#12 adalah wadah yang dapat menyimpan sertifikat, rantainya, dan kunci privat yang cocok, dilindungi kata sandi, meskipun juga dapat dibuat tanpa kunci.

PEM hanyalah pengodean teks, bukan janji tentang isinya. Akhiran yang sama dapat menggambarkan satu sertifikat atau berkas dengan beberapa blok berlabel, dan opsi ekspor yang menentukan.

Jadi pertanyaan yang berguna bukanlah akhiran mana yang Anda dapatkan, melainkan blok apa yang ada di dalam berkas. Bundel yang diekspor tanpa kuncinya tetap bundel. Periksa isinya, bukan popularitas formatnya.

Periksa apa yang benar-benar Anda dapatkan

Cari labelnya sebelum mengimpor apa pun, lalu baca bidang sertifikat untuk memastikan identitas mana yang Anda pegang. Jalankan pemeriksaan pada berkas yang benar-benar akan diimpor. Ulangi setelah setiap ekspor ulang, karena opsinya bisa berbeda.

grep -E 'BEGIN (CERTIFICATE|PRIVATE KEY|ENCRYPTED PRIVATE KEY)' bundle.pem
openssl x509 -in client.crt -noout -subject -issuer -dates
openssl pkey -in client.key -noout -text | head -5
openssl pkcs12 -info -in client.p12 -noout

Ekspor yang hanya berisi blok sertifikat adalah objek publik dan tidak dapat melakukan autentikasi. Blok kunci tanpa sertifikat membuat Anda kehilangan rantai yang diharapkan server. Keluaran informasi PKCS#12 juga melaporkan ada tidaknya kunci, yang menuntaskan pertanyaan untuk format itu. Ia juga menyebut algoritme dan ukuran kunci, dan gagal total bila tidak ada kunci.

Jangan pernah menempelkan berkas berisi kunci privat ke utas dukungan, pelacak masalah, atau obrolan, bahkan ketika berkas itu tampak seperti sertifikat yang sudah Anda bagikan. Tangkapan layar panel kunci juga menuntut kehati-hatian yang sama.

Kunci bisa berada di tempat yang tidak dapat Anda salin

Pada perangkat terkelola, kunci privat bisa berada di keychain sistem operasi, token perangkat keras, atau enclave aman, dengan kebijakan yang menandainya tidak dapat diekspor. Pengelola sertifikat lalu menampilkan objek publik sementara rahasianya tetap di tempatnya, dan tidak ada perintah ekspor yang menghasilkan salinan portabel. Pendaftaran lewat manajemen perangkat seluler sering bekerja seperti ini secara desain.

Itu adalah kendali, bukan rintangan untuk diakali. Membangun ulang kunci privat dari sertifikat publik tidak mungkin, dan alat apa pun yang mengklaim demikian sedang melakukan hal lain.

Daftarkan identitas baru daripada menyalin

Jalur yang didukung biasanya adalah mendaftarkan identitas tersendiri untuk perangkat baru dan mencabut yang lama saat perangkat itu dipensiunkan, sehingga setiap perangkat dapat ditarik secara mandiri. Bila ekspor dengan kunci benar-benar disetujui, perlakukan berkas yang dihasilkan dan kata sandinya sebagai kredensial: terenkripsi saat disimpan, dipindahkan lewat saluran tepercaya, dan dihapus setelah pendaftaran selesai.

Verifikasi dengan melakukan autentikasi memakai identitas yang diimpor, bukan dengan melihat impor berhasil. Klien yang menerima sertifikat publik ke penyimpanannya tidak membuktikan apa pun tentang kunci.

Akhiri dengan memastikan server menerima identitas baru dan identitas lama masih berperilaku sesuai kebijakan. Dengan begitu penelusuran tuntas dengan bukti, bukan dengan berkas yang tampak benar.

Artikel terkait