當使用JAVA程式連線https,若SSL憑證鏈不在預設的「cacerts」keystore裡,則可能會出現底下錯誤訊息:

java.security.cert.CertificateException: Couldn't find trusted certificate
javax.net.ssl.SSLException: untrusted server cert chain
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
遇到此問題,請依照以下步驟匯入SSL憑證鏈到「cacerts」keystore便可以解決

取得SSL憑證鏈檔案
可使用IE連結指定的https網址(ex: https://ssl_eval.taica.com.tw/servlet/ECPL2_Revoke_V5_T)
滑鼠雙擊IE右下角黃色鎖頭圖示,出現憑證資訊
選擇【詳細資料】→【複製到檔案】→【下一步】→點選【64基本編碼X.509(.CER)】→【下一步】→【瀏覽】指定SSL憑證路徑與檔名→【下一步】→【完成】
取得憑證鏈中所有憑證檔案
滑鼠雙擊IE右下角黃色鎖頭圖示,出現憑證資訊
選擇【憑證路徑】標籤,可以看到完整的憑證鏈(可能有多張)。
選擇每一張憑證,按下【檢視憑證】,之後使用步驟1的方式,將憑證鏈中每一張憑證匯出成.CER檔案。
記住每一張憑證的上下(信任)關係。
上傳SSL憑證以及憑證鏈中的憑證到主機「cacerts」keystore的位置
預設目錄為%JAVA_HOME%/jre/lib/security,若SSL憑證是自簽憑證,則上傳自簽憑證即可。
設定系統環境變數PATH指到%JAVA_HOME%/bin
例如:PATH=%PATH%;%JAVA_HOME%/bin
進入cmd畫面,切換至%JAVA_HOME%/jre/lib/security,找到「cacerts」檔
備份「cacerts」檔案
使用keytool依序(由最上層開始)匯入憑證到「cacerts」,匯入憑證的指令如下
keytool -import -keystore cacerts -file -alias
例如:keytool -import -keystore cacerts -file TaiCA_Test_SSL_Cert.cer -alias TaiCATestSSLCert
是憑證的路徑與檔名
可任意輸入,但是不能和已存在的別名重覆
「cacerts」keystore密碼預設為: changeit。
觀看匯入結果,指令如下
keytool -list -keystore cacerts
查詢其他keytool指令,指令如下
keytool -?


--------------------------------------------------
這是同事在網路上找到的資料
或許以後大家都會用到吧︿︿"
這樣子 貼上來 會有侵權嗎?

還有一個 應該是有用的資訊 先留著吧^^
http://jhcheng00.blogspot.com/2007/03/tomcatssl.html
arrow
arrow
    全站熱搜

    waylin 發表在 痞客邦 留言(0) 人氣()