Назад | Перейти на главную страницу

Доступ к ActiveMQ JMX через SSL

Я пытаюсь получить JMX-доступ с SSL к ActiveMQ (5.8.0 или 5.9.0, работающий под java 1.6.0), но мне не повезло. Раньше я имел дело с JMX-доступом с поддержкой SSL, поэтому я хорошо знаком с настройкой хранилищ ключей, хранилищ доверенных сертификатов и т. Д. Все наши серверы расположены в AWS, поэтому нам также приходится иметь дело с пробиванием дыр в брандмауэрах. Я могу заставить незашифрованный JMX работать на нашем сервере ActiveMQ, указав следующее в файле activemq.xml:

<managementContext>
    <managementContext connectorPort="1099" rmiServerPort="1098" connectorHost="<local IP of AWS instance>" />
</managementContext>

А также указав следующие параметры Java при запуске ActiveMQ:

 -Dcom.sun.management.jmxremote 
 -Dcom.sun.management.jmxremote.password.file=/path/to/jmx.passwd 
 -Dcom.sun.management.jmxremote.access.file=/path/to/jmx.access 
 -Djava.rmi.server.hostname=<public IP of AWS instance>

ManagementContext, по-видимому, не имеет параметров для поддержки SSL, поэтому я также пытаюсь включить следующее в мою командную строку Java (которая отлично работает с другими нашими приложениями Java для доступа к JMX через SSL):

-Dcom.sun.management.jmxremote.ssl=true 
-Djavax.net.ssl.keyStore=/path/to/keystore 
-Djavax.net.ssl.trustStore=/path/to/truststore 
-Djavax.net.ssl.keyStorePassword=<password> 
-Djavax.net.ssl.trustStorePassword=<password> 
-Dcom.sun.management.jmxremote.ssl.need.client.auth=false

Похоже, что ActiveMQ просто игнорирует эти настройки. Если я использую команду openssl s_client -connect: для запроса порта сервера RMI Java-процесса, в котором работает JMX / SSL, он отображает все сведения об используемом сертификате. Однако, если я запускаю команду на порте сервера ActiveMQ RMI, я получаю сообщение о том, что сертификат однорангового узла недоступен.

Возможно ли SSL-шифрование JMX-доступа к ActiveMQ, или мне не повезло, поскольку, похоже, их managementContext не поддерживает его?