CAS JDK 證書錯誤學習筆記
根據目前測試的情況得出以下的分析結論:
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
方法三:伺服器不信任我們自己建立的證書,所以在程式碼中忽略證書信任問題。