如何通过JMX通过ssl连接ActiveMQ Artemis?

问题描述 投票:0回答:1

我有一些代码,使用 JMX 协议但没有 SSL 连接到代理。我进行了代理设置,以便它通过 SSL 工作,但是如何在使用 JMX 的应用程序中附加证书?

配置来自

broker.xml

<acceptor name="main-connector">tcp://localhost:61617?tcpSendBufferSize=1048576;amqpMinLargeMessageSize=102400;tcpReceiveBufferSize=1048576;sslEnabled=true;keyStorePath=keystore_server.jks;trustStorePath=truststore_server.jks;keyStorePassword=qwerty;trustStorePassword=qwerty;needClientAuth=true;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;enabledCipherSuites=TLS_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA;enabledProtocols=TLSv1.3,TLSv1.2</acceptor>

我的经纪商文件夹的结构:

我通过 JMX 连接的代码:

public static MBeanServerConnection connectBroker(String brokerUrl, String login, String password) {
    MBeanServerConnection mBeanServerConnection = null;
    try {
        Map<String, String[]> env = new HashMap();
        String[] creds = {login, password};
        env.put(JMXConnector.CREDENTIALS, creds);
        JMXConnector connector = JMXConnectorFactory.connect(new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + brokerUrl + "/jmxrmi"), env);
        mBeanServerConnection = connector.getMBeanServerConnection();
        DialogsAlert.brokerJmxRmiConnectionSuccess.showAndWait();
        LOGGER.log(Level.INFO,"success" + brokerUrl);
    } catch (Exception e) {
        LOGGER.log(Level.WARNING,"fail", e);
    }
    return mBeanServerConnection;
}

我真的不明白如何封装我的密钥库。

java jmx activemq-artemis
1个回答
0
投票

代理配置的第一个问题是broker.xml

配置JMX连接。它是在
management.xml
中配置的,如文档中所述。请记住,JMX 和 JMS 连接完全不同。 JMS 用于消息传递,JMX 用于管理

可以使用以下系统属性在 JMX 客户端应用程序上配置 SSL 参数:

  • javax.net.ssl.keyStore
  • javax.net.ssl.keyStoreType
  • javax.net.ssl.keyStorePassword
  • javax.net.ssl.trustStore
  • javax.net.ssl.trustStoreType
  • javax.net.ssl.trustStorePassword

更多详细信息请参阅 Java 文档

© www.soinside.com 2019 - 2024. All rights reserved.