2013-10-31 22 views
14

opensslを使用して複数の証明書をPKCS12形式にロードしようとしています。次のようにコマンドは次のとおりです。複数の証明書をopensslでPKCS12にロード

openssl pkcs12 -export -in cert1.arm -inkey cert1_private_key.pem -certfile cert2.arm -certfile cert3.arm -certfile RootCert.pem -name "Test" -out test.p12 

生成されたPKCS12ファイルを解析された、唯一の最後の証明書がファイルに含まれている:私はまた、PKCS12ファイルの中に別々にそれらをインポートしようとした

openssl pkcs12 -in test.p12 -info -nodes 

すべての試行で、最後の証明書だけがファイルに残りました。

問題を解決するにはどうすればよいですか?

答えて

17

まず、すべての証明書がPEM形式であることを確認します。次に、残りの証明書(cert2.arm、cert3.arm、およびRootCert.pem)を含む "certs.pem"という単一のファイルを作成します。

次に、このようなコマンドを使用します。

openssl pkcs12 -export -in cert1.arm -inkey cert1_private_key.pem -certfile certs.pem -name "Test" -out test.p12 

openssl pkcs12ドキュメントには、さまざまなオプションを説明します。

+0

自動的に実行する方法はありますか?手動で証明書を1つのファイルに追加することは実用的ではありません(PKCS12ファイルから証明書を追加/削除する場合)。 –

+3

個々のファイルを、pkcs12ファイルの作成と同じコマンドラインで結合したファイルに連結することができます。たとえばWindowsでは、 'cert2.arm cert3.arm RootCert.pem> combined.pem&openssl pkcs12 ...'と入力します。 Linux/Unixでは、 'cat cert2.arm cert3.arm RootCert.pem> combined.pem;を実行することができます。 openssl pkcs12 ... ' – gtrig

関連する問題