【发布时间】:2017-08-22 18:23:04
【问题描述】:
所以我使用服务器 (google-app-engine) 在客户端应用程序上进行身份验证。 当我使用 JavaFX Webview 或 HttpsURLConnection 时一切正常并且它们连接但是当我使用 HttpClient 时它会引发以下错误
javax.net.ssl.SSLPeerUnverifiedException:对等体未通过身份验证 在 sun.security.ssl.SSLSessionImpl.getPeerCertificates(未知来源) 在 org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128) 在 org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:339) 在 org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:123) 在 org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:147) 在 org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:108) 在 org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415) 在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641) 在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576) 在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554)
完整的 ssl 报告是 here
我正在使用的代码
System.out.println("I started");
String https_url = "https://app.quagrum.com";
URL url;
try {
url = new URL(https_url);
HttpsURLConnection con = (HttpsURLConnection)url.openConnection();//Works
System.out.println("I ran?");
}
catch(Exception a)
{
}
try {
HttpGet get = new HttpGet("https://app.quagrum.com");
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(get);//Throws error
System.out.println(response.getStatusLine().getStatusCode());
if(response.getStatusLine().getStatusCode()!=200)
{
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
try {
Scanner s = new Scanner(instream).useDelimiter("\\A");
String result = s.hasNext() ? s.next() : "";
System.out.println(result);
result =result.substring(result.indexOf("\"",7));
result=result.substring(0, result.indexOf("\""));
System.out.println(result);
} finally {
instream.close();
}
}
}
}catch(Exception a)
{
a.printStackTrace();
}
}
【问题讨论】:
标签: java apache google-app-engine ssl