2012-11-06 53 views
8

有沒有通過命令行或通過自定義信任管理器的方式來創建由cacerts支持的自定義信任庫?自定義信任存儲與cacerts作爲不屬於自定義信任庫的密鑰的回退

該應用程序使用一個自定義的trustStore:

-Djavax.net.ssl.trustStore=/SSL/CATrust.jks 

爲了保持我們自己的信任證書,這是在自定義文件進行簡化JDK的升級,而無需遷移cacerts中。

問題是cacerts帶有如此多的標準證書,我們沒有導入到CATrust.jks中。因爲這個原因,我們收到SSL錯誤,因爲通過命令行屬性提供的自定義CATrust.jks是排他性的,而不是加法的(除了cacerts證書)。

那麼有沒有辦法提供自定義信任庫,如果在該信任庫中找不到證書,服務器/應用程序將回退試圖在cacerts(或二次信任庫)內找到證書?

從最初的閱讀和其他帖子可以看出,這些信息只涉及所有CA證書所在的單一信任庫。

回答

4

作爲部署的一部分,你可以把默認cacerts的副本,你自己的密鑰庫的內容導入到它(或者反過來):

cp /path/to/cacerts merged.jks 
keytool -importkeystore -srckeystore /SSL/CATrust.jks -destkeystore merged.jks 

這肯定會是更好的避免使用相同的別名(請查看keytool -importkeystore的選項以獲取更多詳細信息,特別是如果這必須是腳本的一部分)。