[英]SSL Certificate Error in a JAVA application on Tomcat7 in Ubuntu
我創建了一個JAVA應用程序,並將其部署在Ubuntu 16.04系統的Tomcat7上。 該應用程序在https://上命中一個請求,但返回以下錯誤:
java.io.IOException:javax.net.ssl.SSLPeerUnverifiedException:對等方未通過身份驗證
我嘗試將證書安裝在系統使用的JRE中:
tomcat7 3388 1 0 11:07? 00:00:11 / usr / lib / jvm / default-java / bin / java
但是我仍然遇到同樣的錯誤。
我還在cacerts.jks密鑰庫中安裝了證書,並嘗試使用Java
-Djavax.net.ssl.keyStore=/usr/lib/jvm/default-java/jre/lib/security/cacerts.jks -Djavax.net.ssl.keyStorePassword=changeit
但是我仍然收到錯誤:
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)
我假設我的java和tomcat使用其他證書存儲,但是我找不到相同的證書。
我該如何解決這個錯誤?
更新:我不需要我的應用程序是https或使用SSL,它發出的請求是一個HTTPS請求,該請求必須經過驗證才能作為設備的要求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.