我需要一些帮助将我的 .P12 证书文件转换为 JKS keystore 。我遵循了使用 Java 的 keytool 实用程序的标准命令。但是,当我尝试使用生成的 JKS 文件通过 SOAPUI 访问 WS 端点时,出现 403.7 错误 - 禁止访问:需要 SSL 证书。针对同一端点将 P12 文件与 SOAPUI 结合使用会产生成功的响应。 这是将 P12 keystore 导入 JKS keystore 的标准命令 -
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
(我运行了一个实用程序将两个 key 组合成 keystore.ImportKey )
keytool -importkeystore -srckeystore keystore.ImportKey -destkeystore target.JKS
同样没有骰子。
有什么我想念的吗?
最佳答案
如果您有 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
:您要在其中存储证书的 keystore 的路径。如果不存在,将自动创建。PASSWORD_JKS
:将在 keystore 打开时请求的密码。ALIAS_SRC
:与您在 PKCS#12 文件中的证书条目匹配的名称,例如“tomcat”。
如果您要从生成 .PFX
文件的 Windows 服务器导出证书,则必须检索 Windows 创建的“别名”名称。为此,您可以执行以下命令:
keytool -v -list -storetype pkcs12 -keystore FILE_PFX
“别名”字段表示您需要在命令行中使用的证书的存储名称。
ALIAS_DEST
:与您在 JKS keystore 中的证书条目匹配的名称,例如“tomcat”。
关于security - 需要帮助将 P12 证书转换为 JKS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16244182/