Boa tarde pessoal, estou com um problema quando utilizo a classe HttpClient acessando um servlet HTTPS, esta gerando o erro abaixo:
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at com.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:352)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:390)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:561)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
at com.smarapd.postend.applet.Main$1.run(Main.java:276)
at java.lang.Thread.run(Thread.java:619)
Alguem sabe o pq isso ocorre? estive pesquisando e percebi que quando se utiliza HTTPS tem que adicionar algum metodo de validação do certificado mas não sei como é ?
O trecho do meu código acho q irá ajudar a solucionar:
HttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
url = "https://localhost:8443/ddw/UploadServlet";
HttpPost httppost = new HttpPost(url);
System.out.println("url: "+url+"\nhash: "+hash);
File file = arquivoZip;
CountingMultipartEntity mpEntity = new CountingMultipartEntity(new CountingMultipartEntity.ProgressListener() {
public void transferred(long num) {
progBar.setValue((int)num);
if(progBar.getPercentComplete() == 1.0)
barraStatus.setText("Aguardando resposta");
}
});
//MultipartEntity mpEntity = new MultipartEntity();
ContentBody cbFile = new FileBody(file, "binary/octet-stream");
ContentBody cbHash = new StringBody(hash);
mpEntity.addPart("userfile", cbFile);
mpEntity.addPart("hash", cbHash);
httppost.setEntity(mpEntity);
barraStatus.setText("Enviando");
System.out.println("executing request " + httppost.getRequestLine());
HttpResponse response = httpclient.execute(httppost);
barraStatus.setText("Aguardando Resposta");
Vlw!