https正在成爲主流,http估計在不久的未來會被完全放棄……瀏覽器
一個Java程序須要訪問一個https的網站的時候,可能須要涉及證書的安裝,卸載等操做。tomcat
1、證書的下載ide
打開瀏覽器輸入https://的網站,若是沒有相關證書,能夠根據提示從瀏覽器中下載下來,通常保存爲*.cer文件。測試
2、證書的安裝網站
1. 將步驟一的*.cer文件拷貝到"%JAVA_HOME%\jre\lib\security\cacerts"路徑下 2. keytool -import -keystore cacerts -storepass changeit -keypass changeit -alias my-cas -file *.cer證書的絕對位置
3、證書的查看ui
keytool -list -v -alias my-cas -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -storepass changeit -keypass changeit
4、證書的刪除spa
keytool -delete -v -alias my-cas -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -storepass changeit -keypass changeit
5、一個錯誤code
發佈並運行一個WEB項目,登陸SSL系統時獲得這個錯誤信息:blog
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
6、解決過程及結論ip
1. 全部搜索到的結論都是【沒有正確的安裝證書】。
2. 但是我用步驟三顯示並證實了已經正確的安裝了證書。
3. 靈光一現,會不會是JDK不兼容?已經確認證書由JDK1.7生成,我當前的環境是JDK1.8。
4. 安裝了一個JDK1.7,而後發現Eclipse Neon(4.6.2)不支持JDK1.7。
5. 下載了Eclipse Mars(4.5.2),項目運行成功了!
6. 彷佛獲得結論?JDK版本不一致致使的問題?
7. 繼續測試,將JDK還原成1.8版本。
8. 經過Eclipse Mars運行WEB項目,仍是成功的!
9. JDK1.8表示這個鍋我不背……
10. 從新使用Eclipse Neon運行,仍是相同的錯誤信息。
11. Eclipse Neon的問題???
12. 最後一擊,用Neon從新發布項目,經過Eclipse Server運行,報錯依舊。同一個項目,直接手動啓動tomcat,成功運行!
13. 結論:
1 這次測試環境證書安裝是正確的。 2 JDK1.7和JDK1.8關於SSL證書這塊是兼容的。 3 Eclipse Neon(4.6.2)在SSL證書這塊是有BUG的。
若是萬一遇到和我用一樣版本開發的朋友遇到一樣的問題,不要一味的糾結本身的證書,換個IDE試一下吧。