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を一緒に変更する必要があります。ただし、両方を変更するコマンドはありません。私に何ができる?
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です。