将 .jks 转换为 p12

Posted

技术标签:

【中文标题】将 .jks 转换为 p12【英文标题】:Converting .jks to p12 【发布时间】:2011-02-20 06:27:11 【问题描述】:

如何将.jks 文件转换为p12jks 是一个 java 密钥存储文件,我怎样才能将其转换为 p12 格式?

【问题讨论】:

您应该接受您之前问题的一些答案。 @Matrix 你真的觉得下面的答案都不可接受吗?对于您的代表和徽章,您应该接受或评论为什么这些都不可接受。 【参考方案1】:

将 JKS 文件转换为 PKCS12 格式(Java 1.6.x 及更高版本)

keytool \
  -importkeystore \
  -srckeystore KEYSTORE.jks \
  -destkeystore KEYSTORE.p12 \
  -srcstoretype JKS \
  -deststoretype PKCS12 \
  -srcstorepass mysecret \
  -deststorepass mysecret \
  -srcalias myalias \
  -destalias myalias \
  -srckeypass mykeypass \
  -destkeypass mykeypass \
  -noprompt

来自A few frequently used SSL commands

【讨论】:

这是一个有用的链接。谢谢。 这种转换是否只需要Java 1.6.x 及以上版本进行?我问是因为我在 Java 1.7.x 上遇到了一个问题,即 WSKeystore 类在我将其转换为 cacerts.p12 之前无法读取 cacerts(默认密钥库文件)。 请注意,直接在命令中提供密码通常不是安全的做法(如 keytool 手册页中所述),因为密码可以从您的命令历史记录中读取或使用ps 观察。如果您省略密码,该工具会提示您输入密码。 你拯救了我的一天Daniel Silveira。感谢您的帮助。 “警告:PKCS12 KeyStores 不支持不同的存储和密钥密码。忽略用户指定的 -destkeypass 值。”,bugs.openjdk.java.net/browse/JDK-8008292 - 所以如果你想要,你需要使用别的东西跨度> 【参考方案2】:

JKS → P12:

keytool -importkeystore -srckeystore keystore.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore keystore.p12

P12 → JKS:

keytool -importkeystore -srckeystore keystore.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore keystore.jks

【讨论】:

【参考方案3】:

这是一个相同的单行命令。

keytool -importkeystore -srckeystore <MY_KEYSTORE.jks> -destkeystore <MY_FILE.p12> -srcstoretype JKS -deststoretype PKCS12 -deststorepass <PASSWORD_PKCS12> -srcalias <ALIAS_SRC> -destalias <ALIAS_DEST>

解释参数:

MY_FILE.p12: path to the PKCS#12 file (.p12 or .pfx extension) that is going to be created.
MY_KEYSTORE.jks: path to the keystore that you want to convert.
PASSWORD_PKCS12: password that will be requested at the PKCS#12 file opening.
ALIAS_SRC: name matching your certificate entry in the JKS keystore, "tomcat" for example.
ALIAS_DEST: name that will match your certificate entry in the PKCS#12 file, "tomcat" for example.

【讨论】:

【参考方案4】:

这是给未来的人的,我发现上面的答案已经过时了,在 mac 上我使用这个命令将 JKS 转换为 PKCS12

keytool -importkeystore -srckeystore srckeystore.jks -destkeystore destkeystore.jks -deststoretype pkcs12

【讨论】:

【参考方案5】:

你可以使用,https://keystore-explorer.org/ 打开您的 jks 并另存为 p12 或打开 p12 并另存为 jks。

【讨论】:

可能需要右键单击密钥并选择导出密钥对而不是另存为。

以上是关于将 .jks 转换为 p12的主要内容,如果未能解决你的问题,请参考以下文章

将 P12 转换为 JKS 证书 Adode AIR to Native Android 问题

如何在 OpenSSL 中将 jks 文件转换为 p12 文件?

P12,JKS,CER,RFX,PEM转换速记

从jks证书中提取公钥和私钥(jks证书转pem证书)

将 PFX 文件导入现有 JKS 文件(不从 .pfx 转换为 .jks)

将 .cer 证书转换为 .jks