2017-02-21 30 views
-1

我正在開發一個與多個(微)服務集成的平臺(java),所有通信都通過SSL進行。所以該平臺充當SSL客戶端。未使用Truststore的Java SSL

我無法將所有不同服務的證書導入到我的平臺信任庫中,而是我們想爲不同的服務使用不同的SSLContext。

這種方法的缺點之一是我們需要維護這麼多的信任庫。

我們正在考慮從服務發現中獲取證書鏈並按原樣使用證書,並將其輸入到SSLContext,而不將其導入到trusstore中然後使用它。

TL; DR 有沒有一種方法可以在Java中配置SSLContext而不使用信任存儲,但僅使用ca bundle作爲PEM/cert?

+0

當然有辦法,不過......「保持這麼多的信任庫」不好,「保持這麼多的獨立證書」好不好?有什麼區別? – Vadim

+0

你的目標不明顯。首先,除非需要與發送自簽名證書的服務器進行通信,否則根本不需要定製信任庫。其次,沒有理由將自簽名證書保存在單獨的信任庫中。不清楚你在問什麼。 – EJP

回答

0

您可以從this關於創建SSLSocketFactory的第一部分獲得靈感。一旦你破解你的邏輯,使其成爲默認象下面這樣:

HttpsURLConnection.setDefaultSSLSocketFactory(mySslSocketFactory);