前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为 RabbitMQ 服务器启用 SSL/TLS

为 RabbitMQ 服务器启用 SSL/TLS

原创
作者头像
用户3871926
发布2023-02-18 18:37:29
1.7K0
发布2023-02-18 18:37:29
举报
文章被收录于专栏:Redis管理

为 RabbitMQ 服务器启用 SSL/TLS

TOC

为客户端和服务器生成自签名证书

为了启用 TLS/SSL,我们需要证书/密钥对。 这可以借助 OpenSSL 为客户端和服务器生成自签名证书。

  1. 生成自签名CA证书

我们现在将使用 OpenSSL 创建所有必需的密钥和证书。 让我们开始创建 CA 证书。 确保所有证书都放在以下目录中:

代码语言:shell
复制
cd /home/chen/rabbitmq_server-3.11.6/ssl

第一步是制作根私钥:

代码语言:shell
复制
openssl genrsa -out RMQ-CA-Key.pem

下一步是签署证书。

代码语言:shell
复制
openssl req -new -key RMQ-CA-Key.pem -x509 -days 100 -out RMQ-CA-cert.pem

运行上述命令后,交互式脚本将启动并询问各种信息。 我们将在此处提供所有必需的详细信息。

输入Common-Name (CN) 时需要注意要使用服务器 IP 或 hostname。 完成后,这将生成根 CA 证书。

现在,我们将创建服务器密钥和服务器证书。

  1. 生成服务器密钥
代码语言:shell
复制
openssl genrsa -out RMQ-server-key.pem
  1. 生成 CSR(证书签名请求):
代码语言:shell
复制
openssl req -new -key RMQ-server-key.pem -out RMQ-signingrequest.csr

当我们运行上面的命令时,它会询问各种参数(Country、State、ON、OU 等),我们还需要选择一个 common name (CN)。 这最好是服务器的 IP 或 hostname。

  1. 生成自签名证书
代码语言:shell
复制
openssl x509 -req -days 100 -in RMQ-signingrequest.csr -CA RMQ-CA-cert.pem -CAkey RMQ-CA-Key.pem -CAcreateserial -out RMQ-server-cert.pem

最后,我们需要使用它们来设置 TLS/SSL。

如果你打算启用双向验证,还需要执行如下额外步骤,来生成客户端证书和密钥:

  1. 生成客户端密钥
代码语言:shell
复制
openssl genrsa -out RMQ-client-key.pem
  1. 生成 CSR(证书签名请求):
代码语言:shell
复制
openssl req -new -key RMQ-client-key.pem -out RMQ-signingrequest.csr

当我们运行上面的命令时,它会询问各种参数(Country、State、ON、OU 等),我们还需要选择一个common name (CN)。 这最好是客户端的 IP 或 hostname。

  1. 生成自签名证书
代码语言:shell
复制
openssl x509 -req -days 100 -in RMQ-signingrequest.csr -CA RMQ-CA-cert.pem -CAkey RMQ-CA-Key.pem -CAcreateserial -out RMQ-client-cert.pem

最终,我们生成了以下文件:

代码语言:shell
复制
chenjing@LAPTOP-IH0640SI:/home/chen/rabbitmq_server-3.11.6/ssl$ ls -l
drwxrwxrwx 1 chenjing chenjing 4096 Feb 18 11:54 ./
drwxrwxrwx 1 chenjing chenjing 4096 Feb 18 12:00 ../
-rwxrwxrwx 1 chenjing chenjing 1679 Feb 18 11:40 RMQ-CA-Key.pem
-rwxrwxrwx 1 chenjing chenjing 1452 Feb 18 11:37 RMQ-CA-cert.pem
-rwxrwxrwx 1 chenjing chenjing 1452 Feb 18 11:37 RMQ-server-cert.pem
-rwxrwxrwx 1 chenjing chenjing 1452 Feb 18 11:37 RMQ-server-key.pem
-rwxrwxrwx 1 chenjing chenjing 1338 Feb 18 11:40 RMQ-client-cert.pem
-rwxrwxrwx 1 chenjing chenjing 1679 Feb 18 11:37 RMQ-client-key.pem

在 RabbitMQ 服务器中启用 TLS/SSL 支持

要在 RabbitMQ 中启用 TLS 支持,我们需要在以下位置创建一个名为 rabbitmq.conf 的配置文件:

代码语言:shell
复制
cd ~/rabbitmq_server-3.11.6/etc/rabbitmq/
vim rabbitmq.conf

然后,将以下配置代码粘贴到文件中:

代码语言:txt
复制
listeners.ssl.default = 5671
ssl_options.cacertfile = /home/chen/rabbitmq_server-3.11.6/ssl/RMQ-CA-cert.pem
ssl_options.certfile = /home/chen/rabbitmq_server-3.11.6/ssl/RMQ-server-cert.pem
ssl_options.keyfile = /home/chen/rabbitmq_server-3.11.6/ssl/RMQ-server-key.pem
# 启用双向认证
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert=true

# 如果不启用双向认证,请取消注释下面两行
#ssl_options.verify = verify_none
#ssl_options.fail_if_no_peer_cert = false

使用 RabbitMQ Assistant 连接

RabbitMQ Assistant下载地址:http://www.redisant.cn/rta

如果打算使用 RabbitMQ Assistant 进行连接,客户端证书需要使用 pfx 格式:

代码语言:shell
复制
openssl x509 -in RMQ-client-cert.pem -out RMQ-client-cert.crt
openssl pkcs12 -export -in RMQ-client-cert.crt -inkey RMQ-client-key.pem -out client.pfx
rabbitmq_ssl.png
rabbitmq_ssl.png

更多参考资料见以下链接:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为 RabbitMQ 服务器启用 SSL/TLS
    • 为客户端和服务器生成自签名证书
      • 在 RabbitMQ 服务器中启用 TLS/SSL 支持
        • 使用 RabbitMQ Assistant 连接
        相关产品与服务
        SSL 证书
        腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档