完全な証明書チェーンと秘密キーを含むPKCS12ファイルがあります。アプリケーション用に3つのファイルに分割する必要があります。必要な3つのファイルは次のとおりです(PEM形式)。
- 暗号化されていないキーファイル
- クライアント証明書ファイル
- CA証明書ファイル(ルートおよびすべての中間)
これは私が実行しなければならない一般的なタスクなので、出力を手動で編集せずにこれを実行する方法を探しています。
私は次を試しました:
openssl pkcs12 -in <filename.pfx> -nocerts -nodes -out <clientcert.key>
openssl pkcs12 -in <filename.pfx> -clcerts -nokeys -out <clientcert.cer>
openssl pkcs12 -in <filename.pfx> -cacerts -nokeys -chain -out <cacerts.cer>
これは正常に機能しますが、出力にはバッグ属性が含まれており、アプリケーションはそれを処理する方法を知りません。
いくつかの検索の後、バッグの属性を取り除くために結果をx509に渡す提案された解決策を見つけました。
openssl x509 -in <clientcert.cer> -out <clientcert.cer>
これは機能しますが、cacertファイルで問題が発生します。出力ファイルには、チェーン内の3つの証明書のうちの1つのみが含まれます。
pkcs12コマンドの出力にbag属性を含めることを避ける方法、またはx509コマンド出力にすべての証明書を含める方法はありますか?さらに、x509で実行するのが最も簡単な解決策である場合、ファイルを2回書き込むのではなく、pkcs12からの出力をx509にパイプする方法はありますか?