将 pkcs12 导入密钥库时如何自动填充源密钥库密码
How to autofill source keystore password when importing pkcs12 to keystore
我可以将 p12 密钥库导入密钥库。使用 storepass,我可以预先填写目标密钥库的密码。
keytool -importkeystore -srckeystore kafka.server.keystore.p12 -srcstoretype pkcs12 -destkeystore kafka.server.keystore.jks -storepass $PWD
但是,我仍然被要求提供源密钥库密码:
Enter source keystore password:
我该如何防止这种情况发生?
一个解决方案(可能不是最好的)是应用此处提供的答案:
echo -e "mypassword" | keytool -importkeystore -srckeystore kafka.server.keystore.p12 -srcstoretype pkcs12 -destkeystore kafka.server.keystore.jks -storepass $CA_PWD
使用-srcstorepass
。也最好使用 -deststorepass
(已记录)而不是 -storepass
(恰好在代码中起作用)。参见 keytool -importkeystore -help
。
请注意,如果 p12 包含私钥和证书(通常如此)并且您使 dest=JKS storepass 不同于 src=P12 combined-store&key-pass,则 JKS 中的私钥仍然具有其key(entry) 传递与 p12 source 相同。这意味着任何想要使用来自 JKS 的私钥的程序都必须支持不同的 storepass 和 keypass 值,而有些则不支持。
我可以将 p12 密钥库导入密钥库。使用 storepass,我可以预先填写目标密钥库的密码。
keytool -importkeystore -srckeystore kafka.server.keystore.p12 -srcstoretype pkcs12 -destkeystore kafka.server.keystore.jks -storepass $PWD
但是,我仍然被要求提供源密钥库密码:
Enter source keystore password:
我该如何防止这种情况发生?
一个解决方案(可能不是最好的)是应用此处提供的答案:
echo -e "mypassword" | keytool -importkeystore -srckeystore kafka.server.keystore.p12 -srcstoretype pkcs12 -destkeystore kafka.server.keystore.jks -storepass $CA_PWD
使用-srcstorepass
。也最好使用 -deststorepass
(已记录)而不是 -storepass
(恰好在代码中起作用)。参见 keytool -importkeystore -help
。
请注意,如果 p12 包含私钥和证书(通常如此)并且您使 dest=JKS storepass 不同于 src=P12 combined-store&key-pass,则 JKS 中的私钥仍然具有其key(entry) 传递与 p12 source 相同。这意味着任何想要使用来自 JKS 的私钥的程序都必须支持不同的 storepass 和 keypass 值,而有些则不支持。