Distributed Message Service RabbitMQ

Access Method

2024-06-27 07:02:05

Secure Access Point

RabbitMQ secure access points support "PLAIN" and "AMQPLAIN" authorization mechanisms.

1. Access control

The RabbitMQ "PLAIN" and "AMQPLAIN" authorization mechanisms require the creation of users to obtain access to the corresponding virtual host.

2. Access steps

(1) Create a user (Cluster Management->Users->New User)

(2) Run the demo

Client key parameter settings

Configuration of client key parameters for "PLAIN" and "AMQPLAIN" authorization mechanisms

    String host = "192.168.0.0"; //secure access point ip
        Integer port = 5672;        //secure access point port
        String username = "xxx";       //username of the cluster management user list
        String password = "xxx";
        String vhost = "/";
 
        ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost(host);
        connectionFactory.setPort(port);
        connectionFactory.setUsername(username);
        connectionFactory.setPassword(password);
        connectionFactory.setVirtualHost(vhost);

SSL Endpoint

RabbitMQ secure access points support "EXTERNAL" authorization mechanism.

1.       Access Control

None

2.       Access steps

(1) Download the SSL certificate (Instance Overview->Export Service->Download SSL File)

(2) Run the demo

Client key parameter settings

Configuration of client key parameters for "EXTERNAL" authorization mechanisms

String host = "192.168.0.0"; //SSL access point ip
        int port = 5671;    //SSL access point port
        //The following 2 SSL files can be used to obtain the installation package through the console. For specific obtaining methods, see the second section of 2.2.1 Access Steps.
        String ksFile = "D:\\tmp\\ssl\\client_rabbitmq_key.p12";
        String tksFile = "D:\\tmp\\ssl\\truststore";
        String vhost = "/";
 
        char[] keyPassphrase = "W3zT_98Zz9Io".toCharArray();
        KeyStore ks = KeyStore.getInstance("PKCS12");
        ks.load(new FileInputStream(ksFile), keyPassphrase);
 
        KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
        kmf.init(ks, keyPassphrase);
 
        char[] trustPassphrase = null;
        trustPassphrase = "W3zT_98Zz9Io".toCharArray();
        KeyStore tks = KeyStore.getInstance("JKS");
        tks.load(new FileInputStream(tksFile), trustPassphrase);
 
        TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
        tmf.init(tks);
        SSLContext c = SSLContext.getInstance("tlsv1.2");
        c.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
 
        ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost(host);
        connectionFactory.setPort(port);
        connectionFactory.setVirtualHost(vhost);
        connectionFactory.setSaslConfig(DefaultSaslConfig.EXTERNAL);
        connectionFactory.useSslProtocol(c);


sr8Z1aoGqQOU