我正在创建一个Java客户端程序,将向Tomcat服务器发送敏感信息。因此,我需要使用SSL连接以便信息得到加密。
我需要使用自签名的不受信任证书,但在从Java客户端建立连接时遇到了问题。
我已经成功设置Tomcat 5.5以使用SSL,并通过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"
但是当运行客户端时,我会收到以下错误:
Exception in thread "main" javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
这是客户端代码:
我需要使用自签名的不受信任证书,但在从Java客户端建立连接时遇到了问题。
我已经成功设置Tomcat 5.5以使用SSL,并通过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"
但是当运行客户端时,我会收到以下错误:
Exception in thread "main" javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
这是客户端代码:
URL url = new URL("https://localhost:8443");
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslsocketfactory);
InputStream inputstream = conn.getInputStream();
我今天刚开始接触这些证书,对密钥库不太熟悉,请耐心等待。
请问有人可以解释一下如何将在Tomcat中创建的证书导出并导入到客户端机器吗?
谢谢。