Saya ingin membuat daftar sertifikat yang disimpan di keystore PKCS12.
Keystore memiliki ekstensi .pfx
Saya ingin membuat daftar sertifikat yang disimpan di keystore PKCS12.
Keystore memiliki ekstensi .pfx
Jawaban:
Jika keystore adalah tipe PKCS12 ( .pfx
) Anda harus menentukannya dengan -storetype PKCS12
(jeda baris ditambahkan agar terbaca):
keytool -list -v -keystore <path to keystore.pfx> \
-storepass <password> \
-storetype PKCS12
.p12
)? Saya mendapatkanjava.io.IOException: Invalid keystore format
Anda juga dapat menggunakan openssl
untuk mencapai hal yang sama:
$ openssl pkcs12 -nokeys -info \
-in </path/to/file.pfx> \
-passin pass:<pfx's password>
MAC Iteration 2048
MAC verified OK
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Certificate bag
Bag Attributes
localKeyID: XX XX XX XX XX XX XX XX XX XX XX XX XX 48 54 A0 47 88 1D 90
friendlyName: jedis-server
subject=/C=US/ST=NC/L=Raleigh/O=XXX Security/OU=XXX/CN=something1
issuer=/C=US/ST=NC/L=Raleigh/O=XXX Security/OU=XXXX/CN=something1
-----BEGIN CERTIFICATE-----
...
...
...
-----END CERTIFICATE-----
PKCS7 Data
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048
Anda dapat membuat daftar entri (detail sertifikat) dengan keytool dan bahkan Anda tidak perlu menyebutkan jenis penyimpanannya.
keytool -list -v -keystore cert.p12 -storepass <password>
Keystore type: PKCS12
Keystore provider: SunJSSE
Your keystore contains 1 entry
Alias name: 1
Creation date: Jul 11, 2020
Entry type: PrivateKeyEntry
Certificate chain length: 2
openssl pkcs12 -info -in keystore_file
Apa yang hilang dalam pertanyaan dan semua jawabannya adalah Anda mungkin memerlukan frasa sandi untuk membaca data publik dari keystore PKCS # 12 (.pfx). Jika Anda memerlukan frasa sandi atau tidak tergantung pada bagaimana file PKCS # 12 dibuat. Anda dapat memeriksa struktur ASN1 file (dengan menjalankannya melalui parser ASN1, openssl atau certutil juga dapat melakukan ini), jika data PKCS # 7 (misalnya, awalan OID 1.2.840.113549.1.7) terdaftar sebagai 'terenkripsi' atau dengan cipher-spec atau jika lokasi data di pohon asn1 berada di bawah node yang dienkripsi, Anda tidak akan dapat membacanya tanpa mengetahui frasa sandinya. Ini berarti perintah 'openssl pkcs12' Anda akan gagal dengan kesalahan (keluaran tergantung pada versinya). Bagi mereka yang bertanya-tanya mengapa Anda mungkin tertarik dengan sertifikat PKCS # 12 tanpa mengetahui frasa sandinya. Bayangkan Anda memiliki banyak keystore dan banyak frasa dan Anda benar-benar buruk dalam menjaganya agar tetap teratur dan Anda tidak ingin menguji semua kombinasi, sertifikat di dalam file dapat membantu Anda mengetahui kata sandinya. Atau Anda mengembangkan perangkat lunak untuk memigrasi / memperbarui keystore dan Anda perlu memutuskan terlebih dahulu prosedur mana yang akan dimulai berdasarkan sertifikat yang ada tanpa interaksi pengguna. Jadi contoh terakhir bekerja tanpa frasa sandi tergantung pada struktur PKCS # 12. Atau Anda mengembangkan perangkat lunak untuk memigrasi / memperbarui keystore dan Anda perlu memutuskan terlebih dahulu prosedur mana yang akan dimulai berdasarkan sertifikat yang ada tanpa interaksi pengguna. Jadi contoh terakhir bekerja tanpa frasa sandi tergantung pada struktur PKCS # 12. Atau Anda mengembangkan perangkat lunak untuk memigrasi / memperbarui keystore dan Anda perlu memutuskan terlebih dahulu prosedur mana yang akan dimulai berdasarkan sertifikat yang ada tanpa interaksi pengguna. Jadi contoh terakhir bekerja tanpa frasa sandi tergantung pada struktur PKCS # 12.
Hanya ingin menambahkan itu, karena saya sendiri tidak menemukan jawaban dan menghabiskan banyak waktu untuk mencari tahu.