我有 Java Web 服务并使用 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
Service 和 Client 都是用 Java 编写的,并且工作正常。现在我有一个 .NET 客户端,我的理解是,如果我给 .NET 客户端(即 clientKeystore.jks)提供相同的 jave 客户端证书,它应该可以工作,但是 .NET 客户端有问题。
.NET 客户端开发人员坚持让我使用他生成的 .pfx 证书,如何将 .pfx 证书导入现有的 .jks 文件。
我在网上看到的示例要求我创建一个新的 .jks 文件。
谢谢你。