OpenSSL 1.0.1e 2013年2月11日
自己署名証明書の生成:
openssl req -x509 -newkey rsa:1024 -keyout key.pem -out cert.pem -days 365
プロセス中にPEMパスフレーズが要求されます:
PEMパスフレーズを入力してください:
確認中-PEMパスフレーズを入力してください:
[〜#〜] pem [〜#〜]形式で正常に完了した後、2つの結果ファイルがあります。
key.pem、cert.pem
秘密鍵(key.pem)はPKCS#8形式であり、開始行は次のようになります。
-----暗号化された秘密鍵の開始-----
現在、証明書と関連する秘密鍵をPKCS#12キーストアに結合し、パスワードでキーストアを保護しようとしています。注-私の理解では、これにより、読み取りアクセス中にpasswordを要求し、対応するエントリの秘密鍵に対してpassphraseを要求するように効果的に強制する必要があります。
openssl pkcs12 -export -inkey key.pem -in cert.pem -out keystore.p12
実行時に、私は次のことを求められます。
Key.pemのパスフレーズを入力します。
エクスポートパスワードを入力してください:
確認中-エクスポートパスワードを入力してください:
ただし、現在keystore.p12ファイルに格納されている秘密鍵については、パスフレーズはそのままにしておく必要があることを理解しています。キーストアの内容を読み取ろうとする方法は次のとおりです。
openssl pkcs12 -nodes -info -in keystore.p12
私が得る出力(キーストアをパスワードで保護することにのみ関連する):
インポートパスワードを入力してください:
また、証明書と秘密鍵をPEM形式で一覧表示しますが、後者の場合はパスフレーズを要求しません。それが基本的に問題です。 PEMパスフレーズは秘密鍵には存在しません。何が間違っているのですか、またはどうすればこれを修正できますか?ありがとうございました。
何も悪いことはありません。それがPKCS12の仕組みです。 PKCS12は、トークン間で証明書チェーンと秘密鍵を安全に転送するための形式です。秘密鍵の保護/暗号化は、「エクスポートパスワードの入力」を求められたときに入力したパスフレーズによって行われます。 2回暗号化された鍵のようなものはありません。
編集:省略-nodes
オプション。これにより、秘密鍵の暗号化がオフになります。