GWT CAS Tomcat部署失败

时间:2013-04-02 11:51:09

标签: gwt tomcat cas

我用CAS升级了我的GWT项目。当我在开发模式下测试它时,它工作正常。现在我想将我的项目部署到tomcat。当我运行它时,我可以到达CAS服务器。但是当CAS服务器指示我回到我的webapp时,我收到了这个错误。

  
    

HTTP状态500 - javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:     sun.security.provider.certpath.SunCertPathBuilderException:无法     找到所请求目标的有效证书路径

  
     

输入例外报告

     

消息javax.net.ssl.SSLHandshakeException:   sun.security.validator.ValidatorException:PKIX路径构建失败:   sun.security.provider.certpath.SunCertPathBuilderException:无法   找到所请求目标的有效证书路径

     

description服务器遇到阻止它的内部错误   完成此请求。

     

例外

     

java.lang.RuntimeException:javax.net.ssl.SSLHandshakeException:   sun.security.validator.ValidatorException:PKIX路径构建失败:   sun.security.provider.certpath.SunCertPathBuilderException:无法   找到所请求目标的有效证书路径     org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:295)     org.jasig.cas.client.validation.AbstractCasProtocolUrlBasedTicketValidator.retrieveResponseFromServer(AbstractCasProtocolUrlBasedTicketValidator.java:33)     org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:178)     org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:132)     org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:102)     org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:62)     org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:110)

     

根本原因

     

javax.net.ssl.SSLHandshakeException:   sun.security.validator.ValidatorException:PKIX路径构建失败:   sun.security.provider.certpath.SunCertPathBuilderException:无法   找到所请求目标的有效证书路径     sun.security.ssl.Alerts.getSSLException(Alerts.java:192)     sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1902)     sun.security.ssl.Handshaker.fatalSE(Handshaker.java:276)     sun.security.ssl.Handshaker.fatalSE(Handshaker.java:270)     sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1338)     sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:154)     sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)     sun.security.ssl.Handshaker.process_record(Handshaker.java:804)     sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1032)     sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1328)     sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)     sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)     sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:515)     sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)     sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1299)     sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)     org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:281)     org.jasig.cas.client.validation.AbstractCasProtocolUrlBasedTicketValidator.retrieveResponseFromServer(AbstractCasProtocolUrlBasedTicketValidator.java:33)     org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:178)     org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:132)     org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:102)     org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:62)     org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:110)

     

根本原因

     

sun.security.validator.ValidatorException:PKIX路径构建失败:   sun.security.provider.certpath.SunCertPathBuilderException:无法   找到所请求目标的有效证书路径     sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:385)     sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)     sun.security.validator.Validator.validate(Validator.java:260)     sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326)     sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)     sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)     sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1320)     sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:154)     sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)     sun.security.ssl.Handshaker.process_record(Handshaker.java:804)     sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1032)     sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1328)     sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)     sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)     sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:515)     sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)     sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1299)     sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)     org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:281)     org.jasig.cas.client.validation.AbstractCasProtocolUrlBasedTicketValidator.retrieveResponseFromServer(AbstractCasProtocolUrlBasedTicketValidator.java:33)     org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:178)     org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:132)     org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:102)     org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:62)     org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:110)

     

根本原因

     

sun.security.provider.certpath.SunCertPathBuilderException:无法   找到所请求目标的有效证书路径     sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196)     java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268)     sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380)     sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)     sun.security.validator.Validator.validate(Validator.java:260)     sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326)     sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)     sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)     sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1320)     sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:154)     sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)     sun.security.ssl.Handshaker.process_record(Handshaker.java:804)     sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1032)     sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1328)     sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)     sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)     sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:515)     sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)     sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1299)     sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)     org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:281)     org.jasig.cas.client.validation.AbstractCasProtocolUrlBasedTicketValidator.retrieveResponseFromServer(AbstractCasProtocolUrlBasedTicketValidator.java:33)     org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:178)     org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:132)     org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:102)     org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:62)     org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:110)

     

注意Apache中提供了根本原因的完整堆栈跟踪   Tomcat / 7.0.37日志。 Apache Tomcat / 7.0.37

无法弄清楚如何修复它。

1 个答案:

答案 0 :(得分:0)

我假设您在https=true中启用了deployDescriptor.xml。为了使CAS与HTTPS一起使用,您必须创建一个keystore文件

Creating a Keystore File