- 本地推送請求下游時發生異常
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
這個是由於安全證書問題,瀏覽器訪問請求路徑,
- 點擊路徑簽名的小鎖
- 點擊 證書
- 點擊 詳細信息
- 點擊 複製到文件
- 下一步 選擇base64 下一步 選擇路徑 及 自定義證書名稱 完成
=============證書下載完畢===================
先本地測試(windows環境)
進入jdk/jre/lib/security/ 目錄下.
輸入cmd 回車 進入該目錄下的命令符窗口
安裝證書命令:
keytool -import -alias 證書名 -keystore cacerts -file 證書路徑/test.cer -trustcacerts
比如我放在F:盤了 證書 爲 netpro.cer 則命令改成
keytool -import -alias netpro -keystore cacerts -file F:\netpro.cer -trustcacerts
中間會提示需要密碼: 輸入 changeit 即可
這是java中cacerts證書庫的默認密碼,當然也可自行修改(最好不要改防止遺忘,默認的即可)
當然 keytool 是jdk的命令,如果用不了需要配置jdk的環境變量
驗證該證書是否安裝成功!
比如我這個 查看命令即
keytool -list -keystore cacerts -alias netpro
回車出現安裝的證書則表示安裝成功. 此時通過postman 發送請求本地啓動的接口發送到下游,下游正常返回則表示本地測試成功
此時需要將該步驟移植到linux服務器上.同樣一些步驟
- 通過xshell xftp 上傳證書可暫時放在 /db/下
- 進入目錄下 cd /usr/java/jdk1.7.0_71/jre/lib/security
服務器如果沒有配置jdk命令的環境則需要先配置
可以參考以下博文:
https://blog.csdn.net/zhangbing2434/article/details/52759440
配置完後就可以安裝證書了
需要密碼就使用那個默認密碼 changeit
這時要注意證書所放置的位置
keytool -import -alias netpro -keystore cacerts -file /db/netpro.cer -trustcacerts
同樣查看是否安裝成功
keytool -list -keystore cacerts -alias netpro
安裝OK後重啓tomcat服務器. 此時推送請求就OK了.
==============完美收官================