Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将信任库和密钥库密码安全地应用于JConsole配置_Java_Keystore_Jmx_Jconsole_Truststore - Fatal编程技术网

Java 如何将信任库和密钥库密码安全地应用于JConsole配置

Java 如何将信任库和密钥库密码安全地应用于JConsole配置,java,keystore,jmx,jconsole,truststore,Java,Keystore,Jmx,Jconsole,Truststore,我正在使用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.ke

我正在使用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提供密码而不在命令行上以明文形式提供密码的方法?

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

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


请参见

该选项用于公开JMX端点的java应用程序。我正在尝试使用jconsole连接到端点,在这里我将提供我的组织凭据以对该主机进行身份验证。信任库和密钥库密码用于访问密钥库,因此jconsole可以验证远程主机的身份,我的应用程序可以验证通过其证书连接到它的主机。该选项用于公开JMX端点的java应用程序。我正在尝试使用jconsole连接到端点,在这里我将提供我的组织凭据以对该主机进行身份验证。信任库和密钥库密码用于访问密钥库,因此jconsole可以验证远程主机的身份,我的应用程序可以验证通过其证书连接到它的主机