我可以使用keytool创建没有密码的Java信任存储区吗?



我想使用自签名证书连接到TLS服务器,所以我需要一个自定义的信任存储。 keytool似乎绝对需要密码才能导入证书,但我真的不需要密码保护信任存储。使用标准密码"changeit"将起作用,但我宁愿根本没有密码。

请注意,这是一个"信任存储"

而不是"密钥存储",因此信任存储中根本没有秘密材料:只有服务器的证书,因此客户端可以验证服务器是否受信任。

这在keytool可能吗?是否有其他工具可以从信任存储中删除密码?了解对信任存储进行身份验证实际上可能有其用途,是否有任何特定原因导致我不应该使用没有密码的信任存储?

我很

确定keytool会让你输入一个空白密码,如果你创建一个新的信任存储,但没有密码的问题在于攻击者可以插入他们想要的任何证书并信任它。这会产生恶意机会,例如中间人攻击。您的应用程序假定它可以信任攻击者设置的 URL,因此没有什么可以阻止他们重新路由您的 Web 服务调用。

最佳做法

是将生产环境中的密钥存储和信任存储密码从默认值更改为默认值。

最新更新