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