AMQP安全连接加密URI。

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

我想从我的 Java 客户端到 RabbitMQ AMQP 消息代理建立 AMQP 连接。实际上,它可以正常工作,正如在 https:/www.rabbitmq.comapi-guide.html.

我在做。

ConnectionFactory factory = new ConnectionFactory();
factory.setUsername(userName);
factory.setPassword(password);
factory.setVirtualHost(virtualHost);
factory.setHost(hostName);
factory.setPort(portNumber);
Connection conn = factory.newConnection();

或者等价于下面的代码。

ConnectionFactory factory = new ConnectionFactory();
factory.setUri("amqp://userName:password@hostName:portNumber/virtualHost");
Connection conn = factory.newConnection();

但我假设我的URI字符串中的用户名和密码 都是以纯文本的方式在互联网上传输的,这样的假设对吗?如果是这样的话,我想知道如何让这种认证更安全一些。

rabbitmq amqp
1个回答
0
投票

默认情况下,amqp不使用加密。因此,是的,就我阅读的文档而言,您的用户名确实会在amqp协议中以纯文本形式发送。

RabbitMQ 支持 amqp 的 tls 加密,如文档中所述。官方rabbitmq文档.

因此,为了确保连接安全,您必须在 Rabbitmq 中启用 ssl auth,并告诉它在哪里可以找到有效证书。

例如,在 rabbitmq.conf:

listeners.ssl.default = 5671

ssl_options.cacertfile = /path/to/ca_certificate.pem
ssl_options.certfile   = /path/to/server_certificate.pem
ssl_options.keyfile    = /path/to/server_key.pem
ssl_options.verify     = verify_peer
ssl_options.fail_if_no_peer_cert = false
© www.soinside.com 2019 - 2024. All rights reserved.