最近,我开始配置Spring Web应用程序以与Jasig CAS一起使用。当我在已经配置为使用SSL的Eclipse(Spring Tool Suite)中创建的服务器中运行CAS客户端和CAS服务器时,一切都很好。我能够运行,验证,注销......但是,当我使用与STS中的服务器相同的server.xml创建Tomcat实例并让应用程序在其上运行时,在输入用户名,密码到CAS后发生此异常服务器登录表单和服务器重定向到客户端登录页面,生成票证:
HTTP Status 500 - javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
我使用了与STS Tomcat服务器相同的密钥库和信任库文件,并且证书已导入到文件jre / lib / security / cacerts中。
当我尝试在独立的Tomcat服务器中在Eclipse Tomcat服务器中与CAS服务器一起运行CAS客户端时,它没问题。但它不起作用反之亦然。
STS Tomcat实例和独立Tomcat实例之间有什么区别吗?两者都引用相同的CATALINA_BASE。
我使用Tomcat 7.0.67,CAS 3.6.0,Spring Security 3.1.4。
答案 0 :(得分:2)
我找到了原因。我安装了JRE和JDK。 Eclipse中的Tomcat使用JRE,但独立的Tomcat在JDK中使用JRE。我将证书导入此JRE并且它可以工作。感谢paulsm4的建议。