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