一.報錯: javax.net.ssl.SSLHandshakeException
二.緣由分析:
CAS部署時,經常要涉及到HTTPS的證書發佈問題。因爲在實驗環境中,CAS和應用服務經常是共用一臺PC機,它們跑在相同的JRE環境和Tomcat服務器上,所以忽略了證書的實際用途,一旦將CAS和應用分別部署在不一樣的機器上時,就暈了!
這裏假設以下實驗環境來講明相應的部署
機器A: 部署CAS服務
機器B: 部署OA應用
機器C: 用戶瀏覽器端
1.由機器A上生成.keystore的證書文件,證書頒發者是機器A的徹底域名
2.機器A上用於部署CAS的Tomcat的server.xml文件中定義HTTPS的配置,指向.keystore文件證書
3.從.keystore中導出的憑證文件要copy到機器B上,並導入機器B的JRE環境的證書庫中
4.機器B上部署OA的Tomcat必須指定運行在導入憑證JRE環境上,而不是JDK,這點常有人搞錯。
java
<以上爲借鑑>web
證書的導入:windows
1.查看證書:keytool -list -keystore /xxx/cacerts -storepass changeit瀏覽器
2.刪除同名證書:keytool -delete -alias 證書名稱 -keystore /xxx/cacerts -keypass changeit服務器
3.導入證書:keytool -import -alias 證書名稱 -file /xxx/server.cer -keystore /xxx/cacerts -storepass changeit 或者eclipse
keytool -import -v -rfc -trustcacerts -alias 證書名稱 -file /xxx/server.cer -keystore /xxx/cacerts -storepass changeit -keystore cacerts所在完整路徑 -storetype JKS;測試
4.若是keytool不可用(提示不是內部命令);cd /xxx/jdk1.xxx/binui
或者直接在classpath裏面配置%JAVA_HOME%\lib\tools.jar;spa