web-dev-qa-db-ja.com

keytoolを使用してPKCS12キーストアのパスワードを変更する方法

Keytool(Java 8)を使用してPKCSキーストアのパスワードを変更できません。鍵のパスワードを変更しようとしたとき:

keytool -keypasswd -keystore keystore.p12 -storetype PKCS12 -storepass oldpass -keypass oldpass -new newpass
keytool error: Java.lang.UnsupportedOperationException: -keypasswd commands not supported if -storetype is PKCS12

つまり、PKCS12鍵ストアの鍵パスワードは変更できません。次に、キーストアのパスワードを変更しようとしました:

keytool -storepasswd -keystore keystore.p12 -storetype PKCS12 -storepass oldpass -new newpass
Warning:  Different store and key passwords not supported for PKCS12 KeyStores. Ignoring user-specified -new value.
keytool error: Java.io.FileNotFoundException: keystore.p12 (Access is denied)

つまり、キーストアのパスワードとkeypasswordを一緒に変更する必要があります。ただし、両方を変更するコマンドはありません。私に何ができる?

9

PKCS12ファイルを別のPKCS12にインポートして、新しいPKCS12ファイルに新しいパスワードを与えることができます。次に、新しいPKCS12ファイルを使用するか、以前のファイルを削除して、新しいファイル名を古いファイル名に変更します。これは簡単な方法ではありませんが、目的を満たします。サンプルコードを以下に示します。

keytool -importkeystore -srckeystore DocCA.p12 -srcstoretype PKCS12 -srcstorepass 123456 -destkeystore DocCA2.p12 -deststoretype PKCS12 -deststorepass 11223344 

ここで、DoCA.p12は、パスワードが123223344のDocCA2.p12ファイルにエクスポートされる、パスワードが123456の既存のPKCS12です。

15
Saqib Rezwan