我有一个webstart应用程序,我想在连接到服务器时进行客户端身份验证。我已经创建了pkcs12证书,我使用certmgr.exe安装它,它工作正常。 我想为每个使用该应用程序的客户端做。我该怎么做?如果我分发证书
我收到bad_certificate错误。我知道certifcate没有问题,因为如果你使用浏览器安装证书它会起作用。
我使用
创建了公钥 keytool -export -alias myKey -keystore abc.p12" -storetype PKCS12 -storepass mypassword -rfc -file abc.cer
然后我使用以下命令将此文件导入服务器的密钥库以进行相互身份验证:
keytool -import -v -file abc.cer -keystore C:\ apache-tomcat-7.0.26 \ tomcat.keystore“-storepass mypassword
之后,如果我在certmgr中安装abc.p12证书,它可以正常工作。
为了能够从Java中完成,我需要一个信任库。我创建了一个信任库,我使用
导入公钥 >keytool -import -keystore client-truststore.jks -file abc.cer
如果我尝试使用
访问服务器 -Djavax.net.ssl.keyStore=abc.p12
-Djavax.net.ssl.keyStorePassword=mypassword
-Djavax.net.ssl.trustStore=trustore.jks
-Djavax.net.ssl.trustStorePassword=mypassword
我不确定我做的是否正确。请让我知道你在想什么。
我该怎么办?请让我知道你的建议。
答案 0 :(得分:1)
您应该将其导入服务器的信任库,而不是其密钥库。
答案 1 :(得分:0)
您必须将证书导入您的certs文件,在JDK中是cacerts文件。完成后,您必须查看证书是否存在于文件中,您将在每个客户端上执行此操作。
关于信任存储的事情是您创建自己的JKS文件。