Java https伺服器憑證認證問題解決方案

來源:互聯網
上載者:User

Java https伺服器憑證認證問題解決方案

Java https串連的”unable to find valid certification path to requested target”,”PKIX path building failed”錯誤

問題原因

這個問題的是由於Java內建的根憑證庫中不包含HTTPS伺服器上的根憑證,因此無法得到認證。

解決方案

比較容易實現的方案有兩種:

匯入伺服器憑證到本地Java環境 代碼中忽略認證信任問題

由於第二種方案會導致安全性問題,因此並不推薦。

認證匯入注意事項

將伺服器的根憑證匯入到Java運行環境的根憑證庫中,能解決對應的伺服器https串連問題。

實現方式是使用$JAVA_HOME/jre/bin下的keytool工具將伺服器端的認證添加到jre/lib/security/cacerts檔案中。
需要注意的是:

確定當前Java程式所用的java運行環境jre的路徑(可能為jdk下的jre,也可能是單獨的jre)。 確定有jre/lib/security/cacerts檔案的寫入許可權(可以用管理員權限運行keytool)。詳細步驟:1. 擷取伺服器端的認證檔案

可以使用瀏覽器開啟伺服器網站頁面,然後匯出認證檔案,假設匯出的認證檔案為test.crt 。

2. 產生keystore檔案

利用keytool產生密鑰檔案keystore:

keytool -importcert -noprompt -trustcacerts -alias test -file test.cer -keystore ~/mykeystore

這裡會要求設定口令,設定後請記住口令 。

3. 匯入認證到Java運行時環境

將認證匯入jre/lib/security/cacerts:

keytool -importkeystore -srckeystore ~/keystore -destkeystore [path_to_jre]/lib/security/cacerts

會要求輸入目標密鑰庫口令(也就是jre/lib/security/cacerts 的口令,預設是changeit或者changeme),以及源密鑰庫口令(之前設定的口令).

最後會顯示是否匯入成功。如果成功則重啟Java程式。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.