jmx - SSL 的 JMX 配置 - 获取“java.rmi.ConnectException:连接拒绝主机:”
问题描述
我的应用程序是弹簧启动应用程序。我一直在通过 JMX 简单的基于文件的身份验证访问它,但我正在尝试更改为启用 SSL 的配置。
这是我的 JMX 属性。它在基于文件的身份验证中运行良好,因此打开了端口 9911。
jmxconfig.properties - 包含所有必要的选项。
com.sun.management.jmxremote=true
com.sun.management.jmxremote.rmi.port=9911
com.sun.management.jmxremote.port=9911
com.sun.management.jmxremote.ssl=true
com.sun.management.jmxremote.registry.ssl=true
com.sun.management.jmxremote.authenticate=true
java.rmi.server.hostname=<my remote server>
com.sun.management.jmxremote.password.file=/apps/conf/jmxremote.password
com.sun.management.jmxremote.access.file=/apps/conf/jmxremote.access
com.sun.management.jmxremote.ssl.config.file=/apps/conf/jmxremote.properties
/apps/conf/jmxremote.properties(从上面)
javax.net.ssl.keyStore=/apps/conf/data-ssl.keystore
javax.net.ssl.trustStore=/apps/conf/jconsole.truststore
javax.net.ssl.keyStorePassword=xxxxxxxxxx
javax.net.ssl.trustStorePassword=xxxxxxxxxx
JMX_OPTION="-Dcom.sun.management.config.file=/apps/conf/jmxconfig.properties"
java ${JMX_OPTION} -jar myapplication.jar
我正在使用以下命令启动 jconsole。
jconsole -debug -J-Djavax.net.ssl.keyStore=/apps/local/conf/data-ssl.keystore -J-Djavax.net.ssl.keyStorePassword=xxxxxxxxxx -J-Djavax.net.ssl.trustStore=/apps/local/conf/jconsole.truststore -J-Djavax.net.ssl.trustStorePassword=xxxxxxxxxx -J-Djava.util.logging.config.file=/apps/local/conf/jmxlogging.properties
我正在使用在远程服务器中配置的相同密钥库和信任库文件。所有文件都在正确的位置,并且密钥库 pswd 是正确的。但是当我尝试连接 jconsole 时,出现以下异常。
java.rmi.ConnectException: Connection refused to host: <my server ip address>; nested exception is:
java.net.ConnectException: Operation timed out (Connection timed out)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:623)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:342)
at sun.rmi.registry.RegistryImpl_Stub.lookup(RegistryImpl_Stub.java:116)
at sun.tools.jconsole.ProxyClient.checkSslConfig(ProxyClient.java:234)
at sun.tools.jconsole.ProxyClient.<init>(ProxyClient.java:127)
at sun.tools.jconsole.ProxyClient.getProxyClient(ProxyClient.java:475)
at sun.tools.jconsole.JConsole$3.run(JConsole.java:524)
Caused by: java.net.ConnectException: Operation timed out (Connection timed out)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:606)
at java.net.Socket.connect(Socket.java:555)
at java.net.Socket.<init>(Socket.java:451)
at java.net.Socket.<init>(Socket.java:228)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:148)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:617)
... 8 more
我的配置有什么问题吗?
解决方案
推荐阅读
- visual-studio-2015 - 从 .def 生成的 lib 文件上的 LNK1127(用于 gfortran dll)
- google-cloud-platform - 如何将所有 vCPU 与 `pytorch` 一起使用?
- git - Git合并算法
- sql-server - 如果同一行中的第 2 列值相同,如何在 SQL Server 中触发触发器?
- azure - 带有 yaml 文件的 Azure devops 构建管道不起作用
- pytorch - 无法重现使用 hyperopt 从超参数调整中获得的结果
- macos - VS Code 不允许从文件资源管理器 (MacOs) 拖放文件
- sap - 如何从 sap bo webi 列中的下一行中减去第一行
- json - 嵌套对象的 FindOneAndUpdate
- java - 如何在 Selenium Grid 上对两个单例浏览器进行多线程处理?