首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将PFX文件导入现有的JKS文件(不从.pfx转换为.jks)

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

Stack Overflow用户
提问于 2014-11-07 18:58:01
回答 1查看 39.7K关注 0票数 3

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

代码语言:javascript
复制
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"

若要在客户端和服务器之间建立信任,请将服务器证书导入客户端,将客户端证书导入服务器。

将服务器公钥(certs)导入客户端.

代码语言:javascript
复制
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

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

代码语言:javascript
复制
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客户机,我的理解是,如果我向.NET客户机提供相同的jave客户端证书,即clientKeystore.jks,它应该可以工作,但是.net客户端有问题。

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

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

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-07 19:05:27

您可以将该文件视为Java PKCS12 Keystore。您可以使用所有相同的keytool命令,但是您还需要指定-storetype PKCS12,因为缺省值是JKS。在JDK 1.6及更高版本中工作的示例:

代码语言:javascript
复制
keytool -importkeystore -srckeystore mypfxfile.pfx -srcstoretype pkcs12 
-destkeystore clientcert.jks -deststoretype JKS

还请参阅this线程。我认为这回答了您的问题,但如果您不介意的话,我只需将您现有的JKS文件输出为P12文件,然后将P12文件提供给.NET客户端。这将解决您的问题,如果这是一个真正的格式问题。您可以通过遵循概述的here步骤来做到这一点。如果您仍然有问题,您应该发布.NET客户端的异常,否则我们无法帮助您。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26808193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档