ubah format pfx ke p12

119

Saya perlu mengekspor .pfxsertifikat format (dari windows mmc) ke .p12 untuk digunakan di aplikasi lain. Saya tidak dapat menemukan cara untuk melakukan ini. Adakah yang bisa menyarankan metode?

Tom Squires
sumber

Jawaban:

202

.p12dan .pfxkeduanya adalah file PKCS # 12. Apakah saya melewatkan sesuatu?

Sudahkah Anda mencoba mengganti nama .pfxfile yang diekspor menjadi .p12ekstensi?

jglouie.dll
sumber
9
Membuat Anda bertanya-tanya mengapa itu adalah dua ekstensi file yang berbeda jika keduanya benar-benar sama.
BrainSlugs83
29
Alasan ada dua ekstensi file adalah historis. PFX adalah ekstensi Microsoft, sedangkan P12 adalah ekstensi Netscape. Kedua format sekarang telah diadaptasi menjadi identik, yang berarti bahwa pengembang dapat menggunakan namespace .NET System.Security.Cryptography.X509Certificates untuk bekerja dengan keduanya. Lihat di sini untuk informasi lebih lanjut.
SnapShot
6
Ekstensi nama file untuk file PKCS # 12 adalah ".p12" atau ".pfx". Microsoft "PFX" telah menerima kritik keras karena menjadi salah satu protokol kriptografi yang paling kompleks. PKCS # 12 adalah penerus "PFX" Microsoft. PKCS # 12 adalah salah satu keluarga standar yang disebut Standar Kriptografi Kunci Publik (PKCS) yang diterbitkan oleh RSA Laboratories.
AKS
1
mengganti nama tidak selalu berhasil karena. misalnya jika Anda menggunakan SoapUI dan mengujinya dengan otentikasi 2-arah, gagal. p12 & pfx memiliki riwayat kembali ke Netscape & IE. mereka HAMPIR file yang sama tetapi tidak identik. jadi beberapa aplikasi dapat memahami keduanya terlepas dari ekstensinya dan yang lainnya membutuhkan p12 valid yang 100% kompatibel seperti SoapUI
M.Hefny
10

Saya mengalami masalah dengan file .pfx dengan openconnect. Mengganti nama tidak menyelesaikan masalah. Saya menggunakan keytool untuk mengubahnya menjadi .p12 dan berhasil.

keytool -importkeystore -destkeystore new.p12 -deststoretype pkcs12 -srckeystore original.pfx

Dalam kasus saya, kata sandi untuk file baru (new.p12) harus sama dengan kata sandi untuk file .pfx.

pengguna3113045
sumber
2
Tidak berfungsi, meskipun saya telah menggunakan sandi yang sama untuk keduanya. mendapat kesalahan "kesalahan keytool: java.io.IOException: format keystore tidak valid"
John Smith
5

Jika Anda mencari proses cepat dan manual dengan UI. Saya selalu menggunakan Mozilla Firefox untuk mengkonversi dari PFX ke P12. Impor sertifikat terlebih dahulu ke browser Firefox (Opsi> Privasi & Keamanan> Lihat Sertifikat ...> Impor ...). Setelah diinstal, lakukan ekspor untuk membuat file P12 dengan memilih nama sertifikat dari Manajer Sertifikat lalu klik Cadangan ... dan masukkan nama file, lalu masukkan kata sandi.

Paul Chan
sumber
4

Ini lebih merupakan kelanjutan dari tanggapan jglouie.

Jika Anda menggunakan openssl untuk mengonversi sertifikat PKCS # 12 menjadi kunci PEM publik / pribadi, tidak perlu mengganti nama file. Dengan asumsi file bernama cert.pfx, tiga perintah berikut akan membuat kunci pem publik dan kunci pem pribadi terenkripsi:

openssl pkcs12 -in cert.pfx     -out cert.pem     -nodes -nokeys
openssl pkcs12 -in cert.pfx     -out cert_key.pem -nodes -nocerts
openssl rsa    -in cert_key.pem -out cert_key.pem -des3

Dua perintah pertama mungkin meminta kata sandi impor. Ini akan menjadi kata sandi yang diberikan dengan file PKCS # 12.

Perintah ketiga akan membiarkan Anda menentukan kata sandi enkripsi untuk sertifikat. Inilah yang akan Anda masukkan saat menggunakan sertifikat.

Keith Hanlan
sumber
Perintah pertama menimpa yang kedua, jadi mungkin lakukan saja langkah 2 dan 3. Untuk diketahui bagi pembaca, Des3 adalah enkripsi default untuk kunci pribadi.
goodguys_activate
1

Jalankan perintah ini untuk mengubah .certfile menjadi .p12:

openssl pkcs12 -export -out server.p12 -inkey server.key -in server.crt 

Di mana server.keykunci server dan server.certmerupakan sertifikat masalah CA atau file sertifikat tanda tangan.

kishore tiwari
sumber