使用Java标准密钥库是不好的做法

时间:2011-10-25 20:08:32

标签: java tomcat ssl truststore

我们一直使用java标准密钥库($JAVA_HOME/jre/lib/security/cacerts)作为tomcat的可信存储。并且该tomcat服务器将与其他服务器通信。最近的操作系统(AIX)升级显然在$JAVA_HOME/jre/lib/security/cacerts覆盖了文件,导致在tomcat中托管的应用程序丢失了证书和许多问题。

看看这是一个不好的做法,继续使用$ JAVA_HOME / jre / lib / security / cacerts? 解决这种情况的替代(更好的|标准)方法是什么?

5 个答案:

答案 0 :(得分:5)

如果您的构建过程会重复导入,那么这不是一个坏习惯。

答案 1 :(得分:2)

不确定,但假设您的假设是正确的,请谨慎放置密钥库。我强烈建议将它放在Apache文件夹中。

默认情况下,在Websphere中,密钥库以这种方式工作,因为它带来了自己的JVM:)

答案 2 :(得分:1)

cacerts文件中的内容而言,它不一定比依赖操作系统或浏览器中安装的默认CA证书更糟糕,但这并不意味着它很棒。

Sun / Oracle在JSSE Reference Guide about this中间某处有一个“重要说明”:

  

重要说明:JDK附带有限数量的受信任root   / lib / security / cacerts文件中的证书。如   在keytool中记录,您有责任维护(即,   如果使用此文件,请添加/删除此文件中包含的证书   将文件作为信任库。

     

根据您联系的服务器的证书配置,   您可能需要添加其他根证书。获得所需   来自相应供应商的特定根证书。

在配置方面,对于我必须安装“本地”CA证书的特定应用程序,我发现使用本地信任存储(例如,使用javax.net.ssl.trustStore指定)更稳定。

答案 3 :(得分:0)

是的,这样做是不好的做法。

最佳做法是必须根据需要限制您的可信证书 因此,您应该使用自己的密钥库,只使用应用程序信任的证书。

答案 4 :(得分:0)

AIX升级是一个补丁。任何补丁都不得删除/覆盖用户数据。我建议受这种数据丢失影响的用户要求IBM修复补丁程序。相比之下,httpd服务器的补丁不会覆盖/删除配置,即使它位于程序目录中。

相关问题