gpt4 book ai didi

ssl - Tomcat,从 -D 选项中隐藏 javax.net.ssl.keyStorePassword

转载 作者:行者123 更新时间:2023-12-04 22:37:00 37 4
gpt4 key购买 nike

安装在 Tomcat (9.0.36.B.RELEASE) 上的应用程序使用 SSL(在本例中为 IBM MQ)连接到外部源。因此,我需要为此信任库指定一个信任库和密码。
我让它在 setenv.sh 中添加到 JVM_OPTS 中工作。 :

-Djavax.net.ssl.trustStore=/opt/apps/certs/myapplication.truststore
-Djavax.net.ssl.trustStorePassword=TRUSTSTORE-PASSWORD
-Djavax.net.ssl.keyStore=/opt/apps/certs/myapplication.keystore
-Djavax.net.ssl.keyStorePassword=KEYSTORE-PASSWORD
经典问题,当我执行 ps -ef|grep java 时密码可见(在 RHEL 上运行)。
我已经看到了一些关于如何执行此操作的建议(例如 Hiding plain text password in JVM startup argumnets. " ps -ef | grep 'javax.net.ssl.keyStorePassword'" )。但是这些会在 WAR 文件中更改/添加代码或配置。
我正在寻找“tomcat”解决方案。有没有办法在Tomcat的范围内做到这一点。对 WAR 文件的更改很难实现,因为应用程序来自供应商。
备注 :这不适用于 web.xml 中的连接器配置,因为这只会为传入连接设置 SSL。在这里,应用程序正在与外部系统建立连接(从 Tomcat 的角度来看是出站的)。

最佳答案

您可以向 $CATALINA_BASE/conf/catalina.properties 添加其他属性它们将在 Tomcat 启动期间获取。您当然知道,系统属性对 JVM 来说是全局的,因此无法将此配置限制为仅限于单个应用程序:整个 Tomcat 服务器都会受到影响。
几乎所有 Java 系统属性都可以通过这种方式设置,但有一些异常(exception):

  • catalina.basecatalina.home (显然),
  • Tomcat logging 的配置,
  • 在用户代码之前启动的 JMX 和其他工具的配置。

  • 关注 : 你必须检查 VersionLoggerListener (在 server.xml 中定义)没有 logProps="true" ,否则将记录系统属性的值。默认情况下,仅记录 JVM 参数。

    关于ssl - Tomcat,从 -D 选项中隐藏 javax.net.ssl.keyStorePassword,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66763477/

    37 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com