Java で keytool を使用して PKCS12 証明書をインポートしようとしています。キーストアのパスワードが証明書のパスワードと同じ場合にのみ正常に機能します。キーストアにも PKCS12 証明書パスワードを使用することは必須ですか?
2 に答える
keytoolのドキュメントから(この質問に関連するオプションのみがリストされています):
keytool -importkeystore [ -srcstorepass srcstorepass ] [ -deststorepass deststorepass ] { -srcalias srcalias { -destalias destalias } [ -srckeypass srckeypass ]} [ -destkeypass destkeypass ] ...
単一のエントリまたはすべてのエントリをソース キーストアから宛先キーストアにインポートします。
-srcaliasオプションを指定すると、コマンドはエイリアスによって識別される単一のエントリを宛先キーストアにインポートします。[...] ソース エントリがパスワードで保護されている場合は、srckeypassを使用してエントリを復元します。srckeypassが指定されていない場合 、keytool コマンドはsrcstorepassを使用 してエントリを回復しようとします。srcstorepassが指定されていないか正しくない場合、ユーザーはパスワードの入力を求められます。宛先エントリはdestkeypassで保護されています。destkeypassが指定されていない場合、宛先エントリはソース エントリのパスワードで保護されます。たとえば、ほとんどのサードパーティ ツールでは、 PKCS #12 キーストアのstorepassと keypassが同じであること。 これらのツール用の PKCS #12 キーストアを作成するには、常に -destkeypass を -deststorepass と同じになるように指定してください。
-srcaliasオプションが指定されていない場合、ソース キーストアのすべてのエントリが宛先キーストアにインポートされます。[...] ソース エントリがパスワードで保護されている場合は、srcstorepassを使用してエントリを復元します。srcstorepassが指定されていないか正しくない場合、ユーザーはパスワードの入力を求められます。[...] 宛先エントリは、ソース エントリのパスワードで保護されています。
そのため、キーストアにも PKCS12 証明書パスワードを使用することが必須かどうかは、キーストアを読み取ろうとするアプリケーションによって異なります。
キーストアについて JSSE に通知するために Java システム プロパティに依存している場合、特定のキー エイリアスまたはそのパスワードを指定するためのプロパティはありません。この状況では、パスワードを同じにする以外に選択肢はありません。