使用 JDK 1.6 或更高版本
Justin 在下面的 cmets 中指出,仅 keytool 就能够使用以下命令执行此操作(尽管仅在 JDK 1.6 及更高版本中):
keytool -importkeystore -srckeystore mypfxfile.pfx -srcstoretype pkcs12
-destkeystore clientcert.jks -deststoretype JKS
使用 JDK 1.5 或更低版本
OpenSSL 可以做到这一切。 This answer on JGuru 是迄今为止我发现的最好的方法。
首先确保您已安装OpenSSL。正如我在 Mac OS X 中发现的那样,许多操作系统已经安装了它。
以下两个命令将 pfx 文件转换为可以作为 Java PKCS12 密钥存储打开的格式:
openssl pkcs12 -in mypfxfile.pfx -out mypemfile.pem
openssl pkcs12 -export -in mypemfile.pem -out mykeystore.p12 -name "MyCert"
请注意,第二个命令中提供的名称是您的密钥在新密钥库中的别名。
您可以通过以下命令使用 Java keytool 实用程序验证密钥库的内容:
keytool -v -list -keystore mykeystore.p12 -storetype pkcs12
最后,如果您需要,您可以通过将上面创建的密钥库导入新的密钥库来将其转换为 JKS 密钥库:
keytool -importkeystore -srckeystore mykeystore.p12 -destkeystore clientcert.jks -srcstoretype pkcs12 -deststoretype JKS