在瀏覽器中訪問https是件挺方便的事,與訪問http站點相比,也就是地址欄上多個“s”。但是,在java平臺上訪問https,就有點多。Java虛擬機并不直接使用操作系統的key ring,而是有自己的security manager。與操作系統類似,jdk的security manager默認有一堆的根證書信任。如果你的https站點證書是花錢申請的,被這些根證書所信任,那使用java來訪問此https站點會非常方便。但假如,你的https證書是自己簽名的,就需要將證書導入至JDK的信任證書中,否則訪問時會報SSL錯誤。假如,你的webserice是基于https來進行訪問,而此站點證書是自簽名類型的,那么部署時一定要使用keytool進行證書導入,否則無法正常訪問。
首先手動導入自己的證書:
先看證書大概位置:
上面是找位置,下面比較重要:
第一步確定位置:
第二步移動我的證書到上面確定位置,并且修改名字為bshcert.cer:
sudo mv ils-test.hcf-bshg.com.cer /usr/java/jdk/jre/lib/security/bshcert.cer
第三步就是導入命令:
sudo keytool -import -noprompt -trustcacerts -alias bshcert -keystore ${JAVA_HOME}/jre/lib/security/cacerts -file ${JAVA_HOME}/jre/lib/security/bshcert.cer
密碼一般默認第一個先測試:changeit
? ? ? ? ? ? ? ? ? ? ?第二個測試密碼:changeme
我用第一個就成功了
查看是否成功如果顯示你導入的密碼就說明成功了:
keytool?-list?-keystore?${JAVA_HOME}/jre/lib/security/cacerts?-alias?bshcert
其中:
-alias?指定別名(推薦和證書同名)
-keystore?指定存儲文件(此處固定)
-file?指定證書文件全路徑(證書文件所在的目錄)
注意:當切換到?cacerts?文件所在的目錄時,才可指定?-keystore?cacerts,?否則應該指定全路徑;
此時命令行會提示你輸入cacerts證書庫的密碼,敲入changeit即可,這是java中cacerts證書庫的默認密碼,當然也可自行修改
####指導qq:179061434