Конфигурация JMX для SSL - получение "java .rmi.ConnectException: Соединение отказано в хосте:" - PullRequest
0 голосов
/ 13 марта 2020

Мое приложение - приложение с весенней загрузкой. Я обращался к нему через простую аутентификацию на основе файлов 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

Что-то не так с моей конфигурацией?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...