我正在从https链接中读取xml文本,如果我在浏览器中打开请求验证证书。
URL oracle = new URL(url); //url is a String
URLConnection yc = oracle.openConnection();
BufferedReader inputReader = new BufferedReader(new InputStreamReader(yc.getInputStream()));
我在inputReader的第3行收到IOException。我在一个简单的http链接上尝试了相同的代码,不需要认证,工作得很好。你知道我应该改变什么吗?
谢谢
答案 0 :(得分:0)
您没有包含异常的跟踪,但SSL服务器肯定拒绝连接,因为您没有使用证书进行身份验证。
您需要使用JVM上配置的客户端证书创建https连接。这称为双向SSL身份验证(请检查此tutorial)
你需要
1)创建密钥库(PKCS12或JKS)并包含客户端证书的私钥
2)创建一个trustore(可以是同一个文件)并包含服务器证书的公钥
3)配置JVM以使用与该服务器的SSL连接中的密钥库和信任库。
-Djavax.net.ssl.keyStoreType=pkcs12
-Djavax.net.ssl.keyStore=client.p12
-Djavax.net.ssl.keyStorePassword=whatever
-Djavax.net.ssl.trustStoreType=jks
-Djavax.net.ssl.trustStore=client-truststore.jks
-Djavax.net.ssl.trustStorePassword=whatever