我最近必须将我的公司根 CA(基于 AD CS)添加到 JRE 默认信任库($JAVA_HOME/lib/security/cacerts
文件)中。然后我发现(因为我是新手)默认密码是 changeit
。
我找到了各种解释如何更改它的帖子,但有两个问题我找不到答案:
- 保留默认密码是否存在安全风险?我猜想攻击者可以导入受损的证书,以便客户端信任它们
- 更改此信任库密码有何影响?我还猜测 JRE 可以在内部查找根 CA,因为它知道默认密码。一旦更改,是否必须在某个地方提供它(配置文件,...)?
我们主要在 Windows 上使用 Java 来构建具有小程序的网站,因此我们不会从命令行启动任何内容(我知道可以在命令行上提供密码)。
最佳答案
关于您的第二个问题,有系统属性可以指定默认信任存储和默认 key 存储的密码。信任存储库是:
javax.net.ssl.trustStorePassword
我在 https://stackoverflow.com/a/5871352/5629418 找到了该信息
如果攻击者可以通过配置文件或运行 Java 程序读取您的 Java 系统属性,那么更改密码基本上是徒劳的。
关于java - 更改 Java 默认信任库密码的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40851886/