Назад | Перейти на главную страницу

Как я могу предоставить пароль хранилища ключей при запуске для tomcat без использования системного свойства?

Я хотел бы иметь возможность доставить предварительно настроенный файл server.xml для tomcat, в котором есть заполнитель для пароля хранилища ключей 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 вне конфигурации без использования системного свойства?