【问题标题】:How to securely apply truststore and keystore password to JConsole configuration如何安全地将信任库和密钥库密码应用于 JConsole 配置
【发布时间】: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


    【解决方案1】:

    您可以传递 -Dcom.sun.management.jmxremote.password.file=PASSFILE,其中 PASSFILE 是文件名,包含用户名/密码对,以空格分隔。

    https://gquintana.github.io/2016/09/01/Securing-remote-JMX.html

    【讨论】:

    • 该选项用于暴露 JMX 端点的 java 应用程序。我正在尝试使用 jconsole 连接到端点,我将在其中提供我的组织凭据以对该主机进行身份验证。信任库和密钥库密码用于访问密钥库,因此 jconsole 可以验证远程主机的身份,我的应用程序可以验证通过其证书连接到它的主机
    猜你喜欢
    • 1970-01-01
    • 2018-05-06
    • 2010-09-24
    • 2018-11-11
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    相关资源
    最近更新 更多