Konversikan .pfx ke .cer

155

Apakah mungkin untuk mengonversi file .pfx (Personal Information Exchange) menjadi file .cer (Sertifikat Keamanan)? Kecuali saya salah, bukankah .cer entah bagaimana tertanam di dalam .pfx? Saya ingin beberapa cara untuk mengekstraknya, jika memungkinkan.

Mark Carpenter
sumber

Jawaban:

90

cara sederhana yang saya yakini adalah mengimpornya lalu mengekspornya, menggunakan manajer sertifikat di Windows Management Console.

Andrew Cox
sumber
5
saya mencoba melakukan ini tetapi ketika saya memilih ekspor kunci pribadi, saya mendapatkan opsi .cer (DER disandikan) dinonaktifkan. dan utilitas midletsigner perlu dibuktikan ..
Jigar Joshi
3
Anda harus mencentang kotak saat mengimpornya, yang bertuliskan "tandai kunci ini sebagai barang ekspor"
Andrew Cox
11
Cara menuju ke Manajer Sertifikat di Windows: msdn.microsoft.com/en-us/library/ms788967.aspx
James White
12
Cara yang lebih mudah untuk membuka manajer sertifikat Windows adalah dengan mengetik "certmgr.msc" pada prompt perintah.
Jan Derk
@AndrewCox, Namun apakah ada perbedaan di balik layar antara menandainya sebagai dapat diekspor dan tidak menandainya. Atau itu hanya opsi UI?
Pacerier
212

File PFX adalah bundel PKCS # 12 Personal Information Exchange Syntax Standard . Mereka dapat menyertakan jumlah kunci privat sewenang-wenang dengan sertifikat X.509 yang menyertainya dan rantai otoritas sertifikat (set sertifikat).

Jika Anda ingin mengekstraksi sertifikat klien, Anda dapat menggunakan alat PKCS12 OpenSSL .

openssl pkcs12 -in input.pfx -out mycerts.crt -nokeys -clcerts

Perintah di atas akan menampilkan sertifikat dalam format PEM. Ekstensi file ".crt" ditangani oleh macOS dan Window.

Anda menyebutkan ekstensi ".cer" dalam pertanyaan yang secara konvensional digunakan untuk file yang disandikan DER. Pengkodean biner. Coba file ".crt" terlebih dahulu dan jika tidak diterima, mudah dikonversi dari PEM ke DER:

openssl x509 -inform pem -in mycerts.crt -outform der -out mycerts.cer
Berk D. Demir
sumber
9
+1 untuk menjelaskan apa file itu selain memberikan perintah.
Joshua Drake
"Kesalahan verifikasi Mac: kata sandi tidak valid?" ketika saya mencobanya. Saya tidak tahu kata sandi, saya hanya memiliki file yang disediakan vendor saya.
Brian Knoblauch
1
Sepertinya menjatuhkan "-nokeys" berfungsi ketika Anda berupaya mengubah sertifikat dengan kunci privatnya, katakanlah untuk digunakan dengan Fiddler
Gert van den Berg
@ Bos, Selain dari OpenSSL, apakah Windows cmd punya cara untuk melakukannya?
Pacerier
45

Jika Anda bekerja di PowerShell Anda dapat menggunakan sesuatu seperti berikut ini, diberikan file pfx InputBundle.pfx , untuk menghasilkan file sertifikat DER yang dikodekan (biner), OutputCert.der :

Get-PfxCertificate -FilePath InputBundle.pfx | 
Export-Certificate -FilePath OutputCert.der -Type CERT

Newline ditambahkan untuk kejelasan, tetapi Anda tentu saja dapat memiliki ini semua dalam satu baris.

Jika Anda memerlukan sertifikat dalam format PEM yang disandikan ASCII / Base64, Anda dapat mengambil langkah tambahan untuk melakukannya seperti yang didokumentasikan di tempat lain, seperti di sini: /superuser/351548/windows-integrated-utility-to-convert -tinggi-ke-pem

Jika Anda perlu mengekspor ke format yang berbeda dari DER yang disandikan, Anda dapat mengubah -Typeparameter untuk Ekspor-Sertifikat untuk menggunakan jenis yang didukung oleh .NET, seperti yang terlihat di help Export-Certificate -Detailed:

-Type <CertType>
    Specifies the type of output file for the certificate export as follows. 
     -- SST: A Microsoft serialized certificate store (.sst) file format which can contain one or more certificates. This is the default value for multiple certificates. 
     -- CERT: A .cer file format which contains a single DER-encoded certificate. This is the default value for one certificate. 
     -- P7B: A PKCS#7 file format which can contain one or more certificates.
Ian Gallagher
sumber
Ekspor-Sertifikat hanya tersedia untuk beberapa versi seperti Win 8.1 dan Server 2012 R2. Jika Anda berada di versi lain seperti Win 7, maka tidak berhasil!
Deep-B
1
Itu harus hadir di Server 2012 dan Windows 8.0 ( technet.microsoft.com/en-us/library/hh848628(v=wps.620).aspx ), tetapi poin bagus tentang Windows 7 dan semacamnya!
Ian Gallagher
@IanGallagher, Bagaimana perbandingannya dengan opsi OpenSSL?
Pacerier
Ini jauh lebih nyaman jika Anda tidak ingin menginstal hal-hal OpenSSL!
Leonardo Herrera
25

Saya ingin menambahkan metode yang menurut saya paling sederhana.

  1. Cukup klik kanan file pfx, klik "Instal", ikuti wizard, dan tambahkan ke toko (saya menambahkan ke toko Pribadi).

  2. Di menu mulai ketik certmgr.msc dan pergi ke program CertManager.

  3. Temukan sertifikat pfx Anda (tab di atas adalah berbagai toko), klik tombol ekspor dan ikuti wizard (ada opsi untuk mengekspor sebagai .CER)

Pada dasarnya ia melakukan hal yang sama dengan jawaban Andrew, tetapi ia menghindari menggunakan Windows Management Console (langsung ke impor / ekspor).

kingPuppy
sumber
Tidak jauh lebih cepat karena Anda masih harus membuka certmgr.msc untuk mengekspornya ....
Pacerier
0
openssl rsa -in f.pem -inform PEM -out f.der -outform DER
Giacomo1968
sumber