javax.net.ssl.SSLHandshakeException(Cas導入證書)

一.報錯: 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,這點常有人搞錯。 


三.導入證書步驟:
1.找到JRE
1)機器B的OA應用直接部署在Tomcat
>>>獨立的JRE
若是你在安裝JDK時,選擇了同時安裝JRE,那麼系統是跑在獨立的JRE上。
爲何?由於在安裝獨立JRE的時候程序自動幫你把jre的java.exe添加到了系統變量中,驗證的方法很簡單,你們看到了系統環境變量的 path最前面有「%SystemRoot%system32;%SystemRoot%;」這樣的配置,那麼再去Windows/system32下面去看看吧,發現了什麼?有一個java.exe。 
>>>JDK裏的JRE
若是沒有同時安裝獨立JRE,那麼系統跑在JDK自帶的JRE上。
2)機器B的OA應用在MyEclipse中開發測試中
MyEclipse-右鍵project-Java Build Path-Libraries-雙擊JRE-通常是Workspace default JRE;
MyEclipse-windows-Preferences-Java-Installed JREs-右邊有Myeclipse默認自帶的JDK,雙擊便可查到JRE home;
2.到機器A拷貝證書xxx.cer文件到機器B
3.導入命令
cmd進入命令行窗口;
cd進入JRE目錄\lib\security;
keytool -import -alias cacerts -keystore JRE目錄\lib\security\cacerts -file 證書目錄\xxx.cer -trustcacerts;
提示輸入密碼:changeit
肯定:y
4.若是keytool用不了,查看下path,classpath是否配置正確。

java

相關文章
相關標籤/搜索