我最近必须将我的企业根CA(基于AD CS)添加到JRE默认信任store($JAVA_HOME/lib/security/cacerts
文件)中。然后,我发现(正如我是新手),默认密码是changeit
。
我发现了各种帖子,解释了如何更改它,但是我找不到两个问题:
:- 将默认密码保持安全风险?我猜攻击者然后可以导入折衷的证书,以便客户信任
- 更改此信托店密码的影响是什么?我还猜想JRE可以在内部寻找根CA,因为它知道默认密码。一旦更改,必须在某个地方提供它(配置文件,...)?
我们主要在Windows上使用Java用于具有小程序的网站,因此我们不会从命令行启动任何内容(我知道可以提供密码)。
关于您的第二个问题,有系统属性可以为默认信任存储和默认密钥存储指定密码。信托店的一个是: javax.net.ssl.trustStorePassword
我在https://stackoverflow.com/a/5871352/5629418
找到了该信息如果攻击者可以在配置文件或运行Java程序中读取您的Java系统属性,则更改密码将大多徒劳。
关于您的第二个问题:"更改此信托店密码的影响是什么?"
更改该密码的含义之一是,持有新密码值的内存位最好分配和存储在某个地方以进行以下检索,以及相应的访问的规定。如果没有存储该密码,最好有一个有关如何还原的过程。
该文章包含用于更改此类密码的代码:
thetechawesomeness.ideasmatter.info