首页 文章

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

提问于
浏览
6

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

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

5 回答

  • 5

    cacerts 文件中的内容而言,'s not necessarily worse practice than relying on the default CA certificates installed in your OS or your browser, but that doesn' t意味着它很棒 .

    Sun / Oracle在JSSE Reference Guide about this中间有一点"important note":

    重要说明:JDK在/ lib / security / cacerts文件中附带有限数量的受信任根证书 . 如keytool中所述,如果您将此文件用作信任库,则您有责任维护(即添加/删除)此文件中包含的证书 . 根据您联系的服务器的证书配置,您可能需要添加其他根证书 . 从相应的供应商处获取所需的特定根证书 .

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

  • 0

    如果你有一个重复导入的构建过程,这并不是一个坏习惯 .

  • 2

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

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

  • 1

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

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

  • 0

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

相关问题