今天安裝了公司的數字證書,用 myeclipse 調試程序時,出現錯誤:html
解決PKIX:unable to find valid certification path to requested target 的問題java
根據錯誤消息看,貌似是找不到數字證書。可奇怪的是數字證書我已經導入了啊,爲什麼還出現這樣的狀況了。可能的緣由:windows
1、公鑰是否正確?是不是網站出來的公鑰?api
如何從網站導出公鑰,參見: http://blog.csdn.net/faye0412/article/details/6883879tomcat
2、如何導入的公鑰?導入到哪兒呢?eclipse
仔細想一想看:使用以下命令導入公鑰:網站
keytool -import -file d:\Server.cer -keystore "%JAVA_HOME%\jre\lib\security\cacerts" -alias server
將公鑰導入到了 %JAVA_HOME%\jre\lib\security\cacerts 文件中。 spa
使用以下命令能夠看到結果:.net
keytool -list -keystore "%JAVA_HOME%\jre\lib\security\cacerts" | findstr /i server
若是看到紅色框內容,就說明的確導入成功了。調試
那爲什麼 myeclipse 不認可呢?
3、環境不一致?
再想一想應用程序的啓動過程,經過 myeclipse 啓動 tomcat,進行瀏覽的。而 myeclipse / tomcat 都基於 java ,而 myeclipse 有自帶的 jdk ,啓動時會不會是使用了 myeclipse 的jdk,而不是 %JAVA_HOME% 目錄下的呢?檢查之:
myeclipse -> windows -> preferences -> tomcat -> jdk
看到下拉框後,我恍然大悟,哈哈,myeclipse 啓動tomcat 時,用的是 Sun JDK 1.6.0_13 ,而不是 jdk1.6.0_43(%JAVA_HOME% 指向的jdk目錄)
ok,找到問題就好說了,果斷選擇 jdk1.6._43 ,重啓 tomcat
bingo!