web-dev-qa-db-ja.com

OpenSSLを介してP7BからPEMに変換する

Ubuntuでは、opensslを使用して証明書を正常に変換できません。

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

以前にこのエラーを見たことがありますか?

44
Kevin Meredith

これを試して:

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

それが機能しない場合は、Windowsマシンに移動してエクスポートします this ガイドに従ってください。

58
quanta

上記の答えを組み合わせるには、コマンドは次のとおりです。
openssl pkcs7 -in cert.p7b -inform DER -print_certs -out cert.pem

OpenSSL-Win64を使用して、Windowsで動作することを確認済み

/エラーを発見してくれたボグダンに感謝

22

私は従った このガイド からヘッダー/フッター行を変更するように指示します

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

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

次に、コマンドopenssl pkcs7 -in foo.modified.crt -print_certs -out foo.certsを実行します(foo.modified.crtは、変更したバージョンを保存したファイルです)。これにより、他の回答で提案されているように、Windows証明書のエクスポートを実行した場合と同じ結果が得られました。

8
Curtis Gibby

私の知る限り、以下はpkcs7証明書をpemに変換する必要があります

openssl pkcs7 -in certificate_file.p7b -print_certs -out cert.pem
4
Giuseppe Urso

私の場合の迅速な解決策(ヘッダー/フッターが欠落している多くのファイル):

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

3
Cerber

私もこの問題を抱えていました。 Win7ホストからコピーしたp7bファイルを確認しました。

Gnomeキーリングが証明書をインポートできることがわかりました。そこからDERにエクスポートするのは簡単です

2
Joakim