使用密钥工具(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文件或删除以前的一个,并与旧的文件的名称重命名新的文件名。它不是一个直接的方式,但它满足了objective.A示例代码给出bewlow
keytool -importkeystore -srckeystore DocCA.p12 -srcstoretype PKCS12 -srcstorepass 123456 -destkeystore DocCA2.p12 -deststoretype PKCS12 -deststorepass 11223344
在这里,DoCA.p12是这是在DocCA2.p12文件导出的密码11223344密码为123456的现有PKCS12。
我知道这个问题是关于使用keytool
,但如果这不是一个严格的要求,您可以改用openssl
:
openssl pkcs12 -in keystore.p12 -out temp.pem -nodes
openssl pkcs12 -export -in temp.pem -out keystore-new.p12
rm temp.pem
⚠️重要的是,你在哪里没有人有权读取一个文件夹中做到这一点,因为只要temp.pem
文件存在,里面的按键可以被理解。