如何在不使用系统属性的情况下在启动时向 tomcat 提供密钥库密码?

如何在不使用系统属性的情况下在启动时向 tomcat 提供密钥库密码?

我希望能够为 tomcat 提供一个预配置的 server.xml 文件,其中包含 SSL 密钥库密码的占位符。我的理解是,可以在 server.xml 文件中使用系统属性,如下所示:

<Connector port="443"
           protocol="HTTP/1.1"
           acceptorThreadCount="2"
           connectionTimeout="10000"
           maxKeepAliveRequests="${max.keepAlive}"
           maxThreads="${max.threads}"
           maxExtensionSize="65536"
           SSLEnabled="true"
           scheme="https"
           secure="true"
           clientAuth="false"
           sslProtocol="TLS"
           keystoreType="PKCS12"
           keystoreFile="/var/certs/mycert.p12"
           keystorePass="${keystore.pass}" />

然后我可以通过将 CATALINA_OPTS 设置为类似的内容来提供系统属性"$CATALINA_OPTS -Dkeystore.pass=supersecret"

然而,从技术上讲,这可行;这将导致密钥库传递泄漏到进程列表中。也就是说,如果我要执行,ps -Af | grep java我可以看到我在系统属性中传递的位置。

那么,如何在不使用系统属性的情况下向配置外部的 server.xml 提供密码?

相关内容