java webservice https_WebService的HTTPS访问——解决PKIX错误 | 字痕随行
最近都在與Java打交道,將原來的項目用Java重構了一遍,所以之前的問題又再次浮出水面,在Axis2的WebService客戶端生成完畢后,訪問目標服務時報錯,錯誤為“unable to find valid certification path to requested target”,說白了就是證書問題。
首先,需要從目標站點導出證書,以火狐為例,按以下步驟操作:
其次,導入公鑰:
keytool?-import?-file?d:\Server.cer?-keystore?"%JAVA_HOME%\jre\lib\security\cacerts"?-alias?server
將上面命令中的"d:\Server.cer"替換為第一步導出的證書的完整路徑,比如"d:\bladelogicrds.crt"。在這里需要注意的是:
1.有的資料中說導入到jre下,說的比較模糊,其實決定導入到哪里,是由你最終使用的WEB服務器所加載的JDK決定的,比如我的Tomcat就是使用JAVA_HOME所指向的JDK,所以我需要導入至此。最好細心檢查一下,避免配置了半天卻還是報錯。
2.也許在實驗配置時,搞錯了秘鑰庫密碼,或者在“%JAVA_HOME%\jre\lib\security”下已經存在了“cacerts”這個文件,你可以直接刪了舊的,再使用命令導入,這時會生成一個新的。
使用如下命令可以查看是否導入成功:
keytool?-list?-keystore?"%JAVA_HOME%\jre\lib\security\cacerts"?|?findstr?/i?server
"server"就是個別名,與導入命令中的"-alias server"中的相對應。如下圖所示:
至此,配置完畢,可以再次運行程序進行驗證了。解決這個錯誤還有一種方法,使用編碼的方式將證書添加到請求對象中,這種方法因為時間關系,沒有試驗。
注:keytool為java自帶的工具,可以在bin文件夾中找到。
總結
以上是生活随笔為你收集整理的java webservice https_WebService的HTTPS访问——解决PKIX错误 | 字痕随行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java多线程w3c_多线程
- 下一篇: oracle em 界面乱码,oracl