我正在使用Java 6和JBoss 7.1.3。我想在我的Web应用程序中将https连接到第三方网站。通常,当我尝试时,我得到异常
10:35:45,597 DEBUG [org.apache.tomcat.util.net.jsse.JSSESupport] (http-/0.0.0.0:8443-1) Error getting client certs: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at com.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:352) [jsse.jar:1.6]
at org.apache.tomcat.util.net.jsse.JSSESupport.getX509Certificates(JSSESupport.java:88) [jbossweb-7.0.17.Final.jar:]
at org.apache.tomcat.util.net.jsse.JSSESupport.getPeerCertificateChain(JSSESupport.java:142) [jbossweb-7.0.17.Final.jar:]
at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:1059) [jbossweb-7.0.17.Final.jar:]
at org.apache.coyote.Request.action(Request.java:362) [jbossweb-7.0.17.Final.jar:]
at org.apache.catalina.connector.Request.getAttribute(Request.java:1125) [jbossweb-7.0.17.Final.jar:]
at org.apache.catalina.connector.Request.getAttributeNames(Request.java:1179) [jbossweb-7.0.17.Final.jar:]
at org.apache.catalina.connector.RequestFacade.getAttributeNames(RequestFacade.java:286) [jbossweb-7.0.17.Final.jar:]
at com.sun.faces.application.WebappLifecycleListener.requestDestroyed(WebappLifecycleListener.java:116) [jsf-impl-2.1.11-jbossorg-3.jar:]
at com.sun.faces.config.ConfigureListener.requestDestroyed(ConfigureListener.java:369) [jsf-impl-2.1.11-jbossorg-3.jar:]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) [jbossweb-7.0.17.Final.jar:]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.17.Final.jar:]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.17.Final.jar:]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:372) [jbossweb-7.0.17.Final.jar:]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.17.Final.jar:]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:679) [jbossweb-7.0.17.Final.jar:]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:931) [jbossweb-7.0.17.Final.jar:]
at java.lang.Thread.run(Thread.java:695) [classes.jar:1.6.0_65]
所以我想我需要将CA添加到信任库并告诉JBoss。我以PEM形式下载了第三方CA证书,并使用
创建了一个信任存储keytool -import -file thirdparty.pem -alias thirdparty -keystore truststore.ts
使用密码“changeit”。然后,我设置了一个JBoss系统属性:
<property name="javax.net.ssl.trustStore" value="/opt/jboss-as-7.1.3.Final/standalone/configuration/truststore.ts" />
</system-properties>
但是,在停止并重新启动我的服务器后,尝试连接到该第三方站点会导致相同的异常。我的配置中缺少什么? (PS,我很高兴在我的WAR文件中配置它,而不是整个JBoss环境。)
谢谢, - 戴夫
答案 0 :(得分:0)
尝试很少的事情
1.使用 -trustcacerts 选项进行导入
2.将其导入jdk中的cacerts文件(在jre / lib / security下)
重新启动并重试