Tiket sokongan bertanya sijil mana yang berada di dalam bundel VPN, dan dorongan pertama ialah mengeksport semuanya dan melampirkannya. Fail P12 membungkus sijil dan bahan kunci persendirian dalam satu bekas, jadi mengeksport semuanya ialah tepat apa yang tidak patut anda hantar. Perintah yang menjawab soalan itu ialah masalah pemilihan, bukan penukaran. Empat bendera menentukan separuh bekas mana yang anda dapat, dan dua daripadanya kedengaran lebih selamat daripada yang sebenarnya.

Mulakan dengan membaca bekas itu dan bukannya mengosongkannya.

Apa yang sebenarnya dibawa oleh fail PKCS12

Bekas PKCS12 menyimpan satu atau lebih sijil, mungkin kunci persendirian, dan message authentication code atas kandungannya. Sijil itu mungkin termasuk sijil daun identiti klien anda dan sijil perantaraan yang merantaikannya kepada CA. Kunci itu, apabila ada, ialah apa yang menjadikan fail itu rahsia dan bukan dokumen.

Perbezaan itulah sebabnya -nokeys wujud dan sebabnya bendera itu yang diperlukan oleh tugasan ini.

Baca bundel tanpa menulis kunci itu keluar

Bentuk pemeriksaan mencetak struktur dan butiran algoritma dan tidak menulis apa-apa: openssl pkcs12 -in client.p12 -info -noout. Ia meminta kata laluan import, yang merupakan tempat yang betul untuk nilai itu, dan ia memberitahu anda sama ada fail itu membawa kunci langsung. Gunakan -passin env:PKCS12_PASS apabila kata laluan tidak boleh ditaip, kerana kata laluan di dalam perintah shell ialah kata laluan dalam senarai proses. Langkah ini tidak mengeksport apa-apa, dan itulah keseluruhan maksudnya.

Baca output untuk tiga perkara: berapa banyak sijil, sama ada kunci hadir, dan algoritma mana yang melindunginya.

Gunakan -nokeys, dan jangan keliru dengan -nocerts

-nokeys mengecualikan kunci persendirian dan meninggalkan sijil. -clcerts menyempitkannya kepada sijil klien, -cacerts menyempitkannya kepada sijil CA, dan kedua-duanya ialah penapis dan bukan alternatif. -nocerts terbaca seperti ejaan selamat bagi idea yang sama dan bermaksud sebaliknya: tiada sijil, yang meninggalkan hanya kunci. Mencampurkannya ke dalam eksport sijil ialah cara kunci persendirian berakhir di cakera.

Bentuk dua baris yang menghasilkan fail sijil dan fail CA, dan tiada apa-apa lagi, ialah:

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

Bundel lama memerlukan -legacy pada OpenSSL 3 untuk membaca penyulitan lamanya, dan bendera itu mengubah apa yang diterima penghurai, bukan apa yang dikeluarkannya. Jika penghuraian gagal dengan ralat tentang algoritma yang tidak disokong, menambah -legacy ialah langkah pertama yang betul dan melangkau semakan MAC bukan.

Periksa output, bukan kod keluar

Status keluar sifar mengatakan perintah itu berjalan, bukan bahawa fail itu mengandungi apa yang anda jangkakan. Kira sijil dalam output dan baca subjek serta tarikh: openssl x509 -in client-certificates.pem -noout -subject -dates -fingerprint. Bandingkan cap jari dengan yang dijangkakan oleh pasukan sokongan, kerana bundel yang menyimpan dua sijil klien menghasilkan fail dengan dua blok dan kebanyakan alat hanya membaca yang pertama. Tujuan, kepercayaan dan padanan kunci sekali lagi ujian berasingan.

Sijil yang boleh dihuraikan ialah sijil yang boleh dihuraikan. Ia bukan sijil yang diterima oleh VPN.

Tentukan sama ada anda memerlukan fail langsung

Jika klien penerima mengimport PKCS12 secara terus, menghantar bundel asal melalui saluran yang diluluskan dengan kata laluan disimpan berasingan lebih mudah dan mengekalkan perlindungan. Pengekstrakan adalah untuk pemeriksaan, untuk klien yang memerlukan PEM, atau untuk kes sokongan yang meminta artifak tertentu. Setiap pengekstrakan membuang satu lapisan dan sepatutnya mempunyai sebab.

Sijil awam tidak mengandungi kunci persendirian, tetapi ia mengandungi nama dan butiran organisasi. Kongsi medan yang diminta oleh tiket dan bukannya fail, melainkan fail itulah yang diminta.

Artikel berkaitan