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


39

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

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


ファイルはp7bですか?
ゾレダチェ

ファイルはサーバー間で移動されましたか、FTP経由でアップロードされましたか?実際に正しい形式である場合は、破損している可能性があります。(FTPを使用している場合)ファイルをバイナリモードでサーバーに再転送するか、ソースから再コピーしてください。
ギャレット

私はそれがファイルの接尾辞に基づいたp7bだと言います。...私はそれは、Firefox経由でダウンロードさ再、私はまだ同じのOpenSSLエラーを得た
ケビン・メレディス

1
@Kevin何がfile a.p7bあなたに与えますか?
ニックヤング

@NicYoung-上記のエラーメッセージが表示されるだけです。出力なし。
ケビンメレディス

回答:


55

これを試して:

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

機能しない場合は、Windowsマシンに持ち込み、このガイドに従ってエクスポートしください。


8
OPの-print_certsコマンドにパラメーターが含まれていることに注意してください。出力形式に影響を与えます。これにより、PEM形式(----- BEGIN CERTIFICATE -----で始まる)が得られ、それなしではPKCS#7形式(----- BEGIN PKCS7-- ---)
シルヴァン

これは、-inform derパーツをドロップした場合にのみ機能します。また、Windows Cert Managerからキーをエクスポートする場合、DERとP7Bは2つの異なるオプションであることに注意してください。
jpaugh

18

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

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

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


8

このガイドに従い、ヘッダー/フッターの行を

-----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.certsfoo.modified.crt変更されたバージョンを保存したファイルです)。これにより、他の回答で提案されているWindows証明書のエクスポートを実行した場合と同じ結果が得られました。


5

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

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

この答えがこのスレッドに関連しているのはなぜですか?あなたが見るように。上記と同じです。
msavara

3

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

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


1
base64でエンコードされた証明書があり、それについては何も知らなかったので、base64 -dコマンドを使用することで多くの問題を解決できました。このソリューションは、検索結果でより簡単に利用できるはずです。ありがとうございました!

2

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.