CAS JDK 证书错误学习笔记
通过之前生产上发现的问题总结得出以下结论:
问题现象就是:由F5 进行分发到cas 两个服务端 导致 客户端访问时 (时好时坏的现象 ) 通过在服务端的查看apahce 的访问日志得出的结论
发现其中有一台apache 一直都没有访问日志发现的
由于使用weblogic 12c 和 cas3.5 版本 最大问题在于 cas 服务端的两台机器生成的证书不规范 两个证书的生成时间有时间差
这个可以通过浏览器查看证书的基本信息可得;重点是weblogic 12c 高版本对证书的要求性比较高 所以会报错、低版本的weblogic 不会存在证书验证
不通过的问题
1、CAS 证书 分为 HTTP 和HTTPS 两种访问方式 (HTTP 模式 不需要JDK 证书直接可以访问,而HTTPS 模式需要JDK 证书的支持)。
2、如果JDK 中的jre/lib/security 目录下的密钥文件 cacerts 没有访问权限的话也是报错的。
3、如果在应用程序访问的JDK 不是你所导入证书的JDK的话也会出现证书的错误。
4、目前还有一种情况是当jdk 中存在证书时,且以上的情况都满足的时候还出现如下错误暂时还没有解决
以下是应用程序CAS报错信息:
edu.yale.its.tp.cas.util.SecureURL -ST票据验证异常,e:class javax.net.ssl.SSLHandshakeException
ST票据验证异常
javax.net.ssl.SSLHandshakeException:General SSLEngine problem
javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:
PKIX path validation failed:java.security.cert.CertPathValidatorException: signature check failed
edu.yale.its.tp.cas.client.CASAuthenticationException: Unable to validate ProxyTicketValidator [[edu.yale.its.tp.cas.client.ProxyTicketValidator proxyList=[null] [edu.yale.its.tp.cas.client.ServiceTicketValidator casValidateUrl=[https://cas.hundsun.com:8443/cas/serviceValidate] ticket=[ST-73-gicvl1BIeG9b5LdPWBFz-cas] service=[http%3A%2F%2Flocalhost%3A8086%2FCasTest%2Findex.jsp] renew=false]]]
方法一:使用keytool手动导入证书,为JRE环境导入信任证书
摘自:http://www.cnblogs.com/wanghaixing/p/5630070.html
方法二:使用代码下载证书保存
摘自:https://blog.csdn.net/frankcheng5143/article/details/52164939
方法三:服务器不信任我们自己创建的证书,所以在代码中忽略证书信任问题。