【发布时间】:2019-07-15 15:50:49
【问题描述】:
我正在使用 JConsole 安全地连接到另一台机器上的远程 JMX 端点。 我正在尽最大努力在流程的每一步都使用 TLS,这包括让主机相互验证。我通过将每个人的证书导入另一个人的信任库来做到这一点
我已经让所有这些都正常工作了,现在 jconsole 正在启动:
jconsole -J-Djavax.net.ssl.keyStore=/path/to/keystore -J-Djavax.net.ssl.trustStore=/path/to/trustStore -J-Djavax.net.ssl.keyStorePassword=password -J-Djavax.net.ssl.trustStorePassword=password
但是,我不喜欢这种解决方案,因为我现在在命令行上提供密码,这样任何有权访问主机或我们的监控工具的人都可以轻松读取它。
我通过指定 ssl 配置文件的位置解决了随附的 java 应用程序的这个问题,其中保存了密码和密钥库的路径:
java -Dcom.sun.management.jmxremote.ssl.config.file=/path/to/ssl_config ...
但是,这不适用于 jconsole。我什至没有收到任何迹象表明配置文件甚至被引用或读取。我尝试了多种方法来引用配置文件,并尝试让 jconsole 从文件中读取密码,但没有一种方法可以工作。
有没有人知道在命令行中不以明文形式提供密码的方式向 jconsole 提供密码?
【问题讨论】:
标签: java keystore jmx jconsole truststore