Tiket dukungan menanyakan sertifikat mana yang ada di dalam paket VPN, dan naluri pertama adalah mengekspor semuanya dan melampirkannya. File P12 mengemas sertifikat dan materi kunci privat dalam satu kontainer, jadi mengekspor semuanya justru yang tidak boleh Anda kirim. Perintah yang menjawab pertanyaan itu adalah masalah pemilihan, bukan konversi. Empat flag menentukan separuh kontainer mana yang Anda dapatkan, dan dua di antaranya terdengar lebih aman daripada kenyataannya.

Mulailah dengan membaca kontainer alih-alih mengosongkannya.

Apa yang sebenarnya dibawa file PKCS12

Kontainer PKCS12 berisi satu atau beberapa sertifikat, mungkin kunci privat, dan message authentication code atas isinya. Sertifikat dapat mencakup sertifikat leaf identitas klien Anda dan sertifikat perantara yang merantainya ke CA. Kunci, bila ada, adalah yang membuat file itu rahasia, bukan dokumen.

Perbedaan itulah alasan -nokeys ada dan alasan flag itu yang dibutuhkan tugas ini.

Baca paket tanpa menuliskan kuncinya

Bentuk inspeksi mencetak struktur dan detail algoritma dan tidak menulis apa pun: openssl pkcs12 -in client.p12 -info -noout. Perintah ini meminta kata sandi impor, yang merupakan tempat yang tepat untuk nilai itu, dan memberi tahu apakah file membawa kunci sama sekali. Gunakan -passin env:PKCS12_PASS bila kata sandi tidak dapat diketik, karena kata sandi di dalam perintah shell adalah kata sandi di daftar proses. Langkah ini tidak mengekspor apa pun, dan itulah intinya.

Baca output untuk tiga hal: berapa banyak sertifikat, apakah ada kunci, dan algoritma apa yang melindunginya.

Gunakan -nokeys, dan jangan tertukar dengan -nocerts

-nokeys mengecualikan kunci privat dan menyisakan sertifikat. -clcerts mempersempitnya ke sertifikat klien, -cacerts mempersempitnya ke sertifikat CA, dan keduanya adalah filter, bukan alternatif. -nocerts terbaca seperti ejaan aman dari gagasan yang sama dan berarti sebaliknya: tanpa sertifikat, yang menyisakan hanya kunci. Mencampurkannya ke ekspor sertifikat adalah cara kunci privat berakhir di disk.

Bentuk dua baris yang menghasilkan file sertifikat dan file CA, dan tidak ada yang lain, adalah:

openssl pkcs12 -in client.p12 -nokeys -clcerts -out client-certificates.pem
openssl pkcs12 -in client.p12 -nokeys -cacerts -out ca-certificates.pem

Paket lama memerlukan -legacy pada OpenSSL 3 untuk membaca enkripsi lamanya, dan flag itu mengubah apa yang diterima parser, bukan apa yang dikeluarkannya. Jika penguraian gagal dengan galat algoritma yang tidak didukung, menambahkan -legacy adalah langkah pertama yang benar dan melewati pemeriksaan MAC bukan.

Periksa output, bukan kode keluar

Status keluar nol mengatakan perintah berjalan, bukan bahwa file berisi apa yang Anda harapkan. Hitung sertifikat di output dan baca subject serta tanggal: openssl x509 -in client-certificates.pem -noout -subject -dates -fingerprint. Bandingkan fingerprint dengan yang diharapkan tim dukungan, karena paket dengan dua sertifikat klien menghasilkan file dengan dua blok dan sebagian besar alat hanya membaca yang pertama. Tujuan, kepercayaan, dan kecocokan kunci kembali menjadi uji terpisah.

Sertifikat yang bisa diurai adalah sertifikat yang bisa diurai. Itu bukan sertifikat yang diterima VPN.

Putuskan apakah Anda benar-benar membutuhkan file

Jika klien penerima mengimpor PKCS12 secara langsung, mengirim paket asli melalui kanal yang disetujui dengan kata sandi disimpan terpisah lebih sederhana dan mempertahankan proteksi. Ekstraksi adalah untuk inspeksi, untuk klien yang membutuhkan PEM, atau untuk kasus dukungan yang meminta artefak tertentu. Setiap ekstraksi menghapus satu lapisan dan harus punya alasan.

Sertifikat publik tidak berisi kunci privat, tetapi berisi nama dan detail organisasi. Bagikan bidang yang diminta tiket alih-alih filenya, kecuali filenya memang yang diminta.

Artikel terkait