OpenSSL ile P7B'den PEM'ye dönüştürme


39

Ubuntu'da, openssl kullanarak başarılı bir şekilde sertifikayı dönüştüremiyorum.

vagrant@dev:/vagrant/keys$ openssl pkcs7 -print_certs -in a.p7b -out a.cer 
unable to load PKCS7 object <blah blah>:PEM
routines:PEM_read_bio:no start line:pem_lib.c:696:Expecting: PKCS7

Bu hatayı daha önce gördünüz mü?


Dosyanın bir p7b olduğundan emin misiniz?
Zoredache

Dosya sunucular arasında taşındı mı ya da FTP ile mi yüklendi? Gerçekten de doğru format ise, bozulmuş gibi görünüyor. Dosyayı sunucuya ikili modda yeniden aktarmayı deneyin (FTP kullanıyorsanız) veya kaynaktan yeniden kopyalayın.
Garrett

Dosyanın sonekine göre bir p7b diyorum. Firefox aracılığıyla tekrar indirdim, ancak hala aynı OpenSSL hatasını alıyorum ...
Kevin Meredith

1
@Kevin Size ne file a.p7bveriyor?
Nic Young,

@NicYoung - Sadece yukarıdaki hata mesajını alıyorum. Çıktı yok.
Kevin Meredith

Yanıtlar:


55

Bunu dene:

$ openssl pkcs7 -inform der -in a.p7b -out a.cer

Çalışmazsa, bir Windows makinesine getirir ve bu kılavuzu izleyin .


8
OP'nin parametresinin -print_certskomutunda olduğuna dikkat edin. Çıktı formatını etkiler: onunla birlikte bir PEM formatı alırsınız (----- BEGIN BELGESİ ----- ile başlar) ve onsuz bir PKCS # 7 formatı alırsınız (----- BEGIN PKCS7-- ---)
Sylvain

Bu sadece -inform derparçayı düşürürsem çalışır . Ayrıca, bir anahtarı Windows Sertifika Yöneticisi'nden verirken, DER ve P7B'nin iki farklı seçenek olduğunu unutmayın.
jpaugh

18

Bu yüzden yukarıdaki cevapları birleştirmek için komut şudur:
openssl pkcs7 -in cert.p7b -inform DER -print_certs -out cert.pem

OpenSSL-Win64'ü kullanarak Windows'ta çalıştığı doğrulandı

/ Hatayı gördüğünüz için teşekkürler Bogdan


8

Üstbilgi / altbilgi satırlarını değiştirmenizi söyleyen bu kılavuzu izledim .

-----BEGIN PKCS #7 SIGNED DATA-----
[data]
-----END PKCS #7 SIGNED DATA-----

için

-----BEGIN CERTIFICATE-----
[data]
-----END CERTIFICATE-----

Ardından komutu çalıştırın openssl pkcs7 -in foo.modified.crt -print_certs -out foo.certs( foo.modified.crtdeğiştirilmiş sürümü kaydettiğiniz dosya nerede ). Bu bana diğer cevaplarda önerildiği gibi bir Windows sertifikası dışa aktarması ile aynı sonuçları verdi.


5

Bildiğim kadarıyla, aşağıdakiler pkcs7 sertifikasını pem'e çevirmeli

openssl pkcs7 -in certificate_file.p7b -print_certs -out cert.pem

Neden bu cevabın bu konuyla ilgili olduğunu kastettin? Çünkü gördüğün gibi. Yukarıdaki gibi aynı.
msavara

3

benim durumumda hızlı çözüm (eksik üstbilgi / altbilgi olan birçok dosya):

base64 -d $FILE | openssl pkcs7 -inform DER -print_certs


1
Base64 kodlu bir sertifikam vardı ve bu konuda daha fazla bir şey bilmiyordum ve base64 -d komutu beni çok zorladı. Bu çözüm arama sonuçlarında daha hazır bulunmalıdır. Teşekkür ederim!

2

Bende de bu problem vardı. Win7 ana bilgisayarından kopyaladığım bir p7b dosyasını doğrulayacaktım.

GNOME anahtarlığının sertifikayı alabildiğini öğrendim. Oradan DER'e ihracat yapmak kolaydı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.