I have created a JAVA Application and have deployed it on Tomcat7 in an Ubuntu 16.04 System. The application hits a request on an https:// but returns the following error:
java.io.IOException: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
I have tried installing the certificate in the JRE used by the system:
tomcat7 3388 1 0 11:07 ? 00:00:11 /usr/lib/jvm/default-java/bin/java
But i still get the same error.
I have also installed the certificate in the cacerts.jks keystore and have tried using java
-Djavax.net.ssl.keyStore=/usr/lib/jvm/default-java/jre/lib/security/cacerts.jks -Djavax.net.ssl.keyStorePassword=changeit
But I am still getting the error:
java.io.IOException: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:467)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
in.pwc.FormHandler.doPost(FormHandler.java:184)
javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:431)
org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:131)
org.apache.http.conn.ssl.SSLSocketFactory.verifyHostname(SSLSocketFactory.java:648)
org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:623)
org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:115)
org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:314)
org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:360)
org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219)
org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:177)
org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:77)
org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:95)
org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106)
in.pwc.test.decrypt(test.java:62)
org.apache.jsp.viewAdmin_jsp._jspService(viewAdmin_jsp.java:193)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
in.pwc.FormHandler.doPost(FormHandler.java:184)
javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
I am assuming that my java and tomcat are using some other certificate store but I am unable to find the same.
How can I go about solving this error?
Update: I do not need my application to be https or using SSL the request its makes is an HTTPS request which has to be a verified one as a requirement of the appliance.