load()
使用该方法创建后初始化密钥库(无论它是用于“密钥库”还是“信任库”) 。一个版本需要一个InputStream
对应于密钥库文件的文件,以及解密文件的密码。以编程方式向该方法提供密码对我来说似乎很奇怪。
例如,服务器使用密钥库来存储其私钥和相关证书。密钥库中存在的信息是明智的,因此受密码保护。load()
以编程方式将密码传递给方法有什么问题?最佳做法是什么?
另一个例子,但现在涉及信任库。客户端有一个信任库,用于存储受信任 CA 的证书。据我了解,信任库不包含服务器的证书,而只包含允许验证服务器证书的 CA 的证书。我看到的一个信任库示例是 JRE 中的一个(在security
文件夹 -中cacerts
)。通过查看配置,我可以看到它受默认密码保护changeit
。我知道信任库是使用密钥库实现的,因此它(或者可能是可选的?)使用密码进行加密。但是,由于信任库通常将公共信息(受信任的 CA 的证书)存储在文件中,为什么建议更改密码?
谢谢