gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:33:18 25 4
gpt4 key购买 nike

我有 Java 网络服务,并使用 Java Keytool 创建的 jks 文件实现了 X.509。

keytool -genkey -keyalg RSA -sigalg SHA1withRSA -validity 730 -alias myservicekey -keypass skpass -storepass sspass -keystore serviceKeystore.jks -dname "cn=localhost"

keytool -genkey -keyalg RSA -sigalg SHA1withRSA -validity 730 -alias myclientkey -keypass ckpass -storepass cspass -keystore clientKeystore.jks -dname "cn=clientuser"

为了在客户端和服务器之间建立信任,我将服务器证书导入客户端,将客户端证书导入服务器。

将服务器公钥(证书)导入客户端。

keytool -export -rfc -keystore clientKeystore.jks -storepass cspass -alias myclientkey -file MyClient.cer
keytool -import -trustcacerts -keystore serviceKeystore.jks -storepass sspass -alias myclientkey -file MyClient.cer -noprompt

将客户端公钥(证书)导入服务器

keytool -export -rfc -keystore serviceKeystore.jks -storepass sspass -alias myservicekey -file MyService.cer
keytool -import -trustcacerts -keystore clientKeystore.jks -storepass cspass -alias myservicekey -file MyService.cer -noprompt

服务和客户端都是用 Java 编写的,并且运行良好。现在我有一个 .NET 客户端,我的理解是,如果我将相同的 jave 客户端证书提供给 .NET 客户端,即 clientKeystore.jks,它应该可以工作,但是 .net 客户端有问题。

.NET 客户端开发人员坚持要我使用他生成的 .pfx 证书,如何将 .pfx 证书导入现有的 .jks 文件

我在网上看到的例子要求我创建一个新的.jks 文件。

谢谢。

最佳答案

您可以将该文件视为 Java PKCS12 keystore 。您可以使用所有相同的 keytool 命令,但您还需要指定 -storetype PKCS12,因为默认值为 JKS。适用于 JDK 1.6 及更高版本的示例:

keytool -importkeystore -srckeystore mypfxfile.pfx -srcstoretype pkcs12 
-destkeystore clientcert.jks -deststoretype JKS

另见 this线。我认为这回答了你的问题,但如果你不介意一个建议,我会简单地将你现有的 JKS 文件输出为 P12 文件,然后将 P12 文件提供给 .NET 客户端。如果它确实是格式问题,那将解决您的问题。您可以按照概述的步骤执行此操作 here .如果仍有问题,您应该发布 .NET 客户端的异常,否则我们无法帮助您。

关于java - 将 PFX 文件导入现有 JKS 文件(不从 .pfx 转换为 .jks),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26808193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com