需要帮助将 P12 证书转换为 JKS
Posted
技术标签:
【中文标题】需要帮助将 P12 证书转换为 JKS【英文标题】:Need help converting P12 certificate into JKS 【发布时间】:2013-04-21 02:02:16 【问题描述】:我需要一些帮助,将我的 .P12 证书文件转换为 JKS 密钥库。我使用 Java 的 keytool 实用程序遵循了标准命令。但是,当我尝试使用生成的 JKS 文件通过 SOAPUI 访问 WS 端点时,我收到 403.7 错误 - 禁止:需要 SSL 证书。对同一端点使用带有 SOAPUI 的 P12 文件会产生成功的响应。 这是将 P12 密钥库导入 JKS 密钥库的标准命令 -
keytool -importkeystore -srckeystore src.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore target.jks
我也尝试使用 openssl 来转换 P12 -> PEM -> DER -> JKS:
openssl pkcs12 -in src.p12 -out src.pem -clcerts
(将 src.pem 编辑成它的两个复合部分,称为 src.key 和 src.cer)
openssl pkcs8 -topk8 -nocrypt -in src.key -out key.der -inform PEM -outform DER
openssl x509 -in src.cer -inform PEM -out cert.der -outform DER
(我运行了一个实用程序将两个密钥组合到 keystore.ImportKey 中)
keytool -importkeystore -srckeystore keystore.ImportKey -destkeystore target.JKS
同样没有骰子。
我有什么遗漏吗?
【问题讨论】:
【参考方案1】:如果您有 Keytool 应用程序和 PKCS#12 文件,请启动单行命令:
keytool -importkeystore -srckeystore [MY_FILE.p12] -srcstoretype pkcs12
-srcalias [ALIAS_SRC] -destkeystore [MY_KEYSTORE.jks]
-deststoretype jks -deststorepass [PASSWORD_JKS] -destalias [ALIAS_DEST]
您需要修改这些参数:
MY_FILE.p12
:表示要转换的 PKCS#12 文件(.p12 或 .pfx 扩展名)的路径。
MY_KEYSTORE.jks
:要在其中存储证书的密钥库的路径。如果不存在,则会自动创建。
PASSWORD_JKS
:将在密钥库打开时请求的密码。
ALIAS_SRC
:名称与您在 PKCS#12 文件中的证书条目匹配,例如“tomcat”。
如果您要从生成 .PFX
文件的 Windows 服务器导出证书,则必须检索 Windows 创建的“别名”名称。为此,您可以执行以下命令:
keytool -v -list -storetype pkcs12 -keystore FILE_PFX
这里,“别名”字段表示您需要在命令行中使用的证书的存储名称。
ALIAS_DEST
:与您在 JKS 密钥库中的证书条目匹配的名称,例如“tomcat”。
【讨论】:
【参考方案2】:但他问如何将.p12转换为JKS,所以答案是:
keytool -importkeystore -srckeystore mystore.p12 -destkeystore myotherstore.jks -srcstoretype PKCS12 -deststoretype jks -srcstorepass mystorepass -deststorepass myotherstorepass -srcalias myserverkey -destalias myotherserverkey -srckeypass mykeypass -destkeypass myotherkeypass
只需要使用这条线,对我有用。
【讨论】:
谢谢。万一有人没有像我这样的别名,命令会是:keytool -importkeystore -srckeystore keystore,jks -destkeystore keystore.jks -srcstoretype PKCS12 -deststoretype jks -deststorepass changeit
它只会询问你的源密码。【参考方案3】:
我很惊讶为什么这么长时间没有人回答这个问题。无论如何,将 p12 转换为 jks 的最简单方法是使用 Keytool。以下是您可能需要使用的命令:
keytool -importkeystore -srckeystore mystore.jck -destkeystore myotherstore.jks -srcstoretype jceks
-deststoretype jks -srcstorepass mystorepass -deststorepass myotherstorepass -srcalias myserverkey
-destalias myotherserverkey -srckeypass mykeypass -destkeypass myotherkeypass
我相信您面临的问题可能是因为您没有提供 Keypass。请注意,保持 keypass 和 storepass 相同是一个好习惯,因为有时服务器无法区分 keypass 和 storepass。
【讨论】:
以上是关于需要帮助将 P12 证书转换为 JKS的主要内容,如果未能解决你的问题,请参考以下文章