首页主机资讯RabbitMQ如何配置SSL加密

RabbitMQ如何配置SSL加密

时间2025-11-18 01:27:04发布访客分类主机资讯浏览964
导读:配置RabbitMQ以使用SSL加密涉及几个步骤,包括生成证书、配置RabbitMQ服务器和客户端。以下是一个基本的指南: 1. 生成证书 首先,你需要生成自签名证书或使用CA签发的证书。这里我们以生成自签名证书为例。 生成CA证书和密钥...

配置RabbitMQ以使用SSL加密涉及几个步骤,包括生成证书、配置RabbitMQ服务器和客户端。以下是一个基本的指南:

1. 生成证书

首先,你需要生成自签名证书或使用CA签发的证书。这里我们以生成自签名证书为例。

生成CA证书和密钥

# 生成CA私钥
openssl genrsa -out ca_key.pem 2048

# 生成CA证书
openssl req -new -x509 -days 3650 -key ca_key.pem -out ca_cert.pem -subj /CN=MyRabbitMQCA

生成服务器证书和密钥

# 生成服务器私钥
openssl genrsa -out server_key.pem 2048

# 生成服务器证书签名请求 (CSR)
openssl req -new -key server_key.pem -out server_csr.pem -subj /CN=localhost

# 使用CA证书签名服务器CSR
openssl x509 -req -in server_csr.pem -CA ca_cert.pem -CAkey ca_key.pem -CAcreateserial -out server_cert.pem -days 365

生成客户端证书和密钥

# 生成客户端私钥
openssl genrsa -out client_key.pem 2048

# 生成客户端证书签名请求 (CSR)
openssl req -new -key client_key.pem -out client_csr.pem -subj /CN=client

# 使用CA证书签名客户端CSR
openssl x509 -req -in client_csr.pem -CA ca_cert.pem -CAkey ca_key.pem -CAcreateserial -out client_cert.pem -days 365

2. 配置RabbitMQ服务器

将生成的证书和密钥文件放到RabbitMQ服务器的配置目录中,通常是 /etc/rabbitmq/

编辑RabbitMQ配置文件

编辑RabbitMQ的配置文件(通常是 /etc/rabbitmq/rabbitmq.conf),添加以下配置:

listeners.ssl.default = 5671
ssl_options.cacertfile = /etc/rabbitmq/ca_cert.pem
ssl_options.certfile = /etc/rabbitmq/server_cert.pem
ssl_options.keyfile = /etc/rabbitmq/server_key.pem
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = true

3. 配置RabbitMQ客户端

在客户端应用程序中配置SSL连接。以下是一个Python示例,使用 pika 库:

import pika

credentials = pika.PlainCredentials('client', 'password')
parameters = pika.ConnectionParameters(
    host='localhost',
    port=5671,
    ssl=True,
    ssl_options={

        'ca_certs': '/etc/rabbitmq/ca_cert.pem',
        'certfile': '/etc/rabbitmq/client_cert.pem',
        'keyfile': '/etc/rabbitmq/client_key.pem',
        'cert_reqs': pika.ssl.CERT_REQUIRED,
        'server_hostname': 'localhost'
    }
    
)

connection = pika.BlockingConnection(parameters)
channel = connection.channel()

# 现在你可以使用channel进行通信
channel.basic_publish(exchange='', routing_key='test_queue', body='Hello World!')

connection.close()

4. 重启RabbitMQ服务器

最后,重启RabbitMQ服务器以应用配置更改:

sudo systemctl restart rabbitmq-server

验证SSL连接

你可以使用 openssl 命令行工具来验证SSL连接:

openssl s_client -connect localhost:5671 -cert /etc/rabbitmq/client_cert.pem -key /etc/rabbitmq/client_key.pem -CAfile /etc/rabbitmq/ca_cert.pem

如果一切配置正确,你应该能够看到SSL握手成功的消息。

通过以上步骤,你就可以成功配置RabbitMQ以使用SSL加密通信。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: RabbitMQ如何配置SSL加密
本文地址: https://pptw.com/jishu/749599.html
Debian RabbitMQ插件安装与管理 Debian RabbitMQ版本更新策略

游客 回复需填写必要信息