我正在创建一个将客户端敏感信息发送到Tomcat服务器的Java客户端程序。所以我需要使用SSL连接,因此信息将被加密。来自Java客户端的SSL连接
我需要使用自签名不受信任的证书,但有问题从java客户端进行连接。
我已成功设置Tomcat 5.5以使用SSL并通过Firefox进行测试,该Firefox会显示自签名证书的警告。
我跟着的Tomcat 5.5 SSL设置,他们提到创建密钥库:
keytool -genkey -alias tomcat -keyalg RSA
然后我做了上述的出口:
keytool -export -keystore .keystore -alias tomcat -file localhost.cer
然后我做了上述证书的导入到客户机:
keytool -import -alias tomcat -file localhost.cer -keystore "C:\Program Files"\Java\jdk1.6.0_17\jre\lib\security\cacerts"
但是运行客户端时,我得到:
异常线程 “main” javax.net。 ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:找不到要求的目标的有效证书路径
这是客户端代码:
URL url = new URL("https://localhost:8443");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslsocketfactory);
InputStream inputstream = conn.getInputStream();
现在我刚刚开始使用这些证书玩,我是新来的密钥库,所以请耐心等待。
有人可以请解释如何导出和导入在Tomcat中创建的证书到客户机?
谢谢。
也许您导入了错误的证书,或者您可能将其导入了错误的JRE。许多人在他们的机器上有多个JRE。你应该列出cacerts的内容,看看你的证书是否在那里。另外,您可以设置系统属性java.net.debug = all来查看有关证书发送和检查部分的更多详细信息。 – 2010-02-10 23:25:12