pfx formatını p12'ye dönüştür


119

.pfxBaşka bir uygulamada kullanmak için bir format sertifikasını (windows mmc'den) .p12'ye aktarmam gerekiyor. Bunu yapmanın bir yolunu bulamıyorum. Biri bir yöntem önerebilir mi?

Yanıtlar:


202

.p12ve .pfxher ikisi de PKCS # 12 dosyasıdır. Bir şey mi kaçırıyorum?

Dışa aktarılan .pfxdosyayı bir .p12uzantıya sahip olacak şekilde yeniden adlandırmayı denediniz mi?


9
Kaputun altında gerçekten aynı şeyse, neden iki farklı dosya uzantısı olduklarını merak ediyorsun.
BrainSlugs83

29
İki dosya uzantısı olmasının nedeni geçmişe dayanır. PFX bir Microsoft eklentisiydi, P12 ise Netscape idi. Her iki biçim de artık aynı olacak şekilde uyarlanmıştır, bu da geliştiricilerin .NET System.Security.Cryptography.X509Certificates ad alanını her ikisiyle de çalışmak için kullanabileceği anlamına gelir. Daha fazla bilgi için buraya bakın .
SnapShot

6
PKCS # 12 dosyaları için dosya adı uzantısı ".p12" veya ".pfx" dir. Microsoft'un "PFX" i, en karmaşık kriptografik protokollerden biri olduğu için ağır eleştiriler aldı. PKCS # 12, Microsoft'un "PFX" inin halefidir. PKCS # 12, RSA Laboratories tarafından yayınlanan Açık Anahtarlı Şifreleme Standartları (PKCS) adı verilen standartlar ailesinden biridir.
AKS

1
yeniden adlandırma her zaman işe yaramıyor çünkü. örneğin, SoapUI kullanırsanız ve bunu 2 yönlü kimlik doğrulamasını test ederseniz başarısız olur. p12 & pfx'in Netscape & IE'ye kadar geçmişi vardır. NEREDEYSE aynıdırlar, ancak aynı dosyalar değildirler. bu nedenle bazı uygulamalar hem uzantıdan bağımsız olarak anlayabilir hem de diğerleri için% 100 uyumlu, geçerli bir p12'ye ihtiyaç duyar, örneğin SoapUI
M.Hefny

10

Openconnect ile bir .pfx dosyasıyla ilgili sorun yaşadım. Yeniden adlandırma sorunu çözmedi. P12'ye dönüştürmek için keytool kullandım ve işe yaradı.

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

Benim durumumda, yeni dosyanın (new.p12) parolasının .pfx dosyasının parolasıyla aynı olması gerekiyordu.


2
Her ikisi için de aynı parolayı kullansam bile işe yaramadı. "keytool hatası: java.io.IOException: Geçersiz anahtar deposu formatı" hatası aldı
John Smith

5

UI ile hızlı ve manuel bir işlem arıyorsanız. PFX'ten P12'ye dönüştürmek için her zaman Mozilla Firefox kullanırım. Önce sertifikayı Firefox tarayıcısına alın (Seçenekler> Gizlilik ve Güvenlik> Sertifikaları Görüntüle ...> İçe Aktar ...). Kurulduktan sonra, Sertifika Yöneticisi'nden sertifika adını seçerek P12 dosyasını oluşturmak için dışa aktarımı gerçekleştirin ve ardından Yedekle ... öğesini tıklayın ve dosya adını girin ve ardından parolayı girin.


4

Bu daha çok Jglouie'nin cevabının devamı niteliğindedir.

PKCS # 12 sertifikasını genel / özel PEM anahtarlarına dönüştürmek için openssl kullanıyorsanız, dosyayı yeniden adlandırmanıza gerek yoktur. Dosyanın cert.pfx olduğunu varsayarsak, aşağıdaki üç komut bir genel pem anahtarı ve şifreli bir özel pem anahtarı oluşturacaktır:

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

İlk iki komut bir içe aktarma şifresi isteyebilir. Bu, PKCS # 12 dosyasıyla sağlanan bir parola olacaktır.

Üçüncü komut, sertifika için şifreleme parolasını belirlemenize izin verecektir. Sertifikayı kullanırken gireceğiniz şey budur.


İlk komut ikincinin üzerine yazar, bu yüzden belki sadece 2. ve 3. adımları uygulayın. Bilginize okuyucular için, Des3 özel anahtar için varsayılan şifrelemedir.
goodguys_activate

1

.certDosyayı şu şekilde değiştirmek için bu komutu çalıştırın .p12:

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

server.keySunucu anahtarı nerede ve server.certbir CA sorun sertifikası veya kendi kendine imzalanan sertifika dosyasıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.