将pkcs12导入密钥库时如何自动填充源密钥库密码

时间:2020-03-13 10:24:02

标签: java bash keytool

我可以将p12密钥库导入密钥库。使用storepass,我可以预填充目标密钥库的密码。

keytool -importkeystore -srckeystore kafka.server.keystore.p12 -srcstoretype pkcs12 -destkeystore kafka.server.keystore.jks -storepass $PWD

但是,仍然要求我提供源密钥库密码:

Enter source keystore password:

如何防止这种情况?

2 个答案:

答案 0 :(得分:1)

使用-srcstorepass。也最好使用-deststorepass(已记录)而不是-storepass(恰好在代码中起作用)。参见keytool -importkeystore -help

请注意,如果p12包含私钥和证书(通常如此),并且您使dest = JKS storepass与src = P12组合存储和密钥pass不同,则JKS中的私钥仍然具有其密钥(条目)与p12 source 相同。这意味着任何想要使用JKS中的私钥的程序都必须为storepass和keypass支持不同的值,而有些则不能。

答案 1 :(得分:0)

一种解决方法(也许不是最好的)是应用此处提供的答案:

Bash script - Auto fill answer

echo -e "mypassword" | keytool -importkeystore -srckeystore kafka.server.keystore.p12 -srcstoretype pkcs12 -destkeystore kafka.server.keystore.jks -storepass $CA_PWD