使用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