使用load()
方法創建後,將初始化密鑰庫(無論它用於「密鑰庫」還是「信任庫」)。一個版本需要對應於密鑰庫文件的InputStream
以及解密該文件的密碼。以編程方式向方法提供密碼對我來說似乎很陌生。密鑰庫的密碼管理
例如,服務器使用密鑰庫來存儲其私鑰和相關證書。密鑰存儲中的信息是明智的,因此它受密碼保護。以編程方式將密碼傳遞給load()
方法有什麼問題?最佳做法是什麼?
另一個例子,但現在關於信任庫。客戶端有一個存儲受信任CA證書的信任庫。據我瞭解,信任庫不包含服務器的證書,但僅包含允許驗證服務器證書的CA的證書。我看到的一個信任庫示例是JRE中的一個示例(位於security
文件夾中 - cacerts
)。通過查看配置,我可以看到它受默認密碼changeit
的保護。我知道一個信任庫是使用密鑰庫實現的,因此它有(或可能是可選的)使用密碼進行加密。但是,由於信任庫通常將公共信息(受信任的CA證書)存儲在文件中,因此建議更改密碼?
感謝
謝謝,我沒有想到對信任庫的修改,這很明顯。 – 2012-07-18 13:17:32
我有另一個相關的問題。爲什麼在KeyManagerFactory執行時,TrustManagerFactory不需要密碼進行初始化?此外,密鑰庫和信任庫的密碼都在load()期間提供。 – 2012-07-18 13:51:44
KMF密碼用於使用私鑰。在這兩種情況下,您都必須先將密鑰庫本身加載到工廠中。 – Bruno 2012-07-18 13:52:51