Details
Description
To my knowledge, it is not possible to run a Geronimo command (e.g. deploy.sh deploy or gsh geronimo/stop-server) to a server with a secure JMX Connector (running SSL, without specifying the following Java system properties on the command line:
javax.net.ssl.keyStore and javax.net.ssl.keyStorePassword
For example:
export GERONIMO_HOME=~/target/geronimo-jetty6-javaee5-2.2-SNAPSHOT
export JAVA_OPTS="-Djavax.net.ssl.keyStore=$GERONIMO_HOME/var/security/keystores/geronimo-default -Djavax.net.ssl.keyStorePassword=secret -Djavax.net.ssl.trustStore=$GERONIMO_HOME/var/security/keystores/geronimo-default -Djavax.net.ssl.trustStorePassword=secret"
$GERONIMO_HOME/bin/deploy.sh -u system -p manager --secure list-modules --stopped
javax.net.ssl.keyStorePassword causes a problem, since this means the keyStorePassword is available, in-the-clear, to someone inspecting executing processes. For example while a deploy command was active, someone could run 'ps auxww | grep deployer.jar' and discover the keyStorePassword for the KeyStore.
Geronimo should provide a mechanism, whereby users can specify the keyStorePassword without making that secret available to anyone inspecting processes running on the current system. Ideally, the password could be encrypted/obfuscated within a file (just as passwords can be encrypted/obfuscated in var/config/config.xml).