我们一直使用java标准密钥库($JAVA_HOME/jre/lib/security/cacerts
)作为tomcat的可信存储。并且该tomcat服务器将与其他服务器通信。最近的操作系统(AIX)升级显然在$JAVA_HOME/jre/lib/security/cacerts
覆盖了文件,导致在tomcat中托管的应用程序丢失了证书和许多问题。
看看这是一个不好的做法,继续使用$ JAVA_HOME / jre / lib / security / cacerts? 解决这种情况的替代(更好的|标准)方法是什么?
答案 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服务器的补丁不会覆盖/删除配置,即使它位于程序目录中。