原因:在部署在linux系統(tǒng)的項目訪問第三方webservice https接口時會拋javax.net.ssl.SSLHandshakeException異常寝殴,這是因為jdk不信任此接口地址,需將webservice接口對應(yīng)的證書加載進jdk把介,步驟如下:
一祈纯、先要在瀏覽器打開需要證書的網(wǎng)站,然后把證書下載下來,保存的證書名稱隨意命名拖吼,只要保證唯一性
二、然后把證書復(fù)制到%JAVA_HOME%/jre/bin/路徑下这吻,即保證證書與keytool.exe文件同目錄(其實不同也行吊档,但是執(zhí)行命令時需要指定路徑)
三、解釋說明:
1唾糯、taobao 是可以自己修改的名稱怠硼, taobao.cer 是導(dǎo)出的證書,同樣移怯,這里的證書名字也是隨便取的香璃,但前提是保證將C:\Program Files\Java\jdk1.6.0_24\jre\lib\security目錄的cacerts文件內(nèi)之前沒有導(dǎo)入同名證書,就是要保證你將要導(dǎo)入的證書名稱唯一性舟误。
2葡秒、changeit 是密碼, java默認的。
3眯牧、keytool是jdk中bin目錄的一個exe文件蹋岩,是jdk默認自帶的,在我電腦的目錄是:C:\Program Files\Java\jdk1.6.0_24\jre\bin\keytool.exe
4学少、%JAVA_HOME%/jre/lib/security/cacerts 這個路徑中%JAVA_HOME%/jre/lib/security/是路徑剪个,cacerts是文件(即將要把證書導(dǎo)入到其中的文件)。當(dāng)然要確保你已經(jīng)配置過java_home環(huán)境變量旱易,我的java_home環(huán)境變量為:C:\Program Files\Java\jdk1.6.0_24
5禁偎、其他保持不變,使用導(dǎo)入命令 keytool -import。
6阀坏、如果提示:“是否信任此證書? [否]:” 如暖,那么請輸入"y"。
常用命令:
1.查看cacerts中的證書列表:
keytool -list -keystore "%JAVA_HOME%/jre/lib/security/cacerts"? -storepass changeit
2.刪除cacerts中指定名稱的證書:
keytool -delete -alias taobao -keystore "%JAVA_HOME%/jre/lib/security/cacerts"? -storepass changeit
3.導(dǎo)入指定證書到cacerts:
keytool -import -alias taobao -file taobao.cer -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit-trustcacerts