Cas在Tomcat下开启Https协议部署
Cas在Tomcat下开启Https协议部署时,如果应用部署在另外的tomcat下,访问应用时,CAS端会不断生成新的票据,循环输出一下日志:
012-03-28 10:22:47,718 INFO [org.jasig.cas.CentralAuthenticationServiceImpl] - Granted service ticket [ST-20-0QEZdcWfNbBZZwAxLJTV-cas] for service [http://localhost:8080/demo/j_spring_security_check] for user [02000001]
2012-03-28 10:22:47,734 INFO [org.jasig.cas.CentralAuthenticationServiceImpl] - Granted service ticket [ST-21-0ZSmhTNBuafugWPMGhbs-cas] for service [http://localhost:8080/demo/j_spring_security_check] for user [02000001]
?
而在应用端也会循环输出一下日志:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
?
这是因为httpclient去访问https URL时,由于没有证书,导致访问失败。
?
解决方法:将安全证书导入应用端的JRE安全中
另外:
引起HTTPS hostname wrong: should be <localhost> 的原因这样子的:
?? 在生成证书的时候,需要指定CN(Common name),这个很重要,千万不要随便指定。只能是域名,而不能是IP之类的。? 比如指定了www.rsky.com.cn,那么
通过Java应用程序访问 https://www.rsky.com.cn是正常的,但是https://10.*.*.*就不行,访问的域名必须是www.rsky.com.cn。
而且CN的名字还不能指定为IP,我出现的问题就是把它指定为IP了,真是想不到的。