乐趣区

关于rabbitmq:为-RabbitMQ-服务器启用-SSLTLS

为 RabbitMQ 服务器启用 SSL/TLS

[TOC]

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

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

  1. 生成自签名 CA 证书

    咱们当初将应用 OpenSSL 创立所有必须的密钥和证书。让咱们开始创立 CA 证书。确保所有证书都放在以下目录中:

    cd /home/chen/rabbitmq_server-3.11.6/ssl

    第一步是制作根私钥:

    openssl genrsa -out RMQ-CA-Key.pem

    下一步是签订证书。

    openssl req -new -key RMQ-CA-Key.pem -x509 -days 100 -out RMQ-CA-cert.pem

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

    输出 Common-Name (CN) 时须要留神要应用服务器 IP 或 hostname。实现后,这将生成根 CA 证书。

    当初,咱们将创立服务器密钥和服务器证书。

  2. 生成服务器密钥

    openssl genrsa -out RMQ-server-key.pem
  3. 生成 CSR(证书签名申请):

    openssl req -new -key RMQ-server-key.pem -out RMQ-signingrequest.csr

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

  4. 生成自签名证书

    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. 生成客户端密钥

    openssl genrsa -out RMQ-client-key.pem
  2. 生成 CSR(证书签名申请):

    openssl req -new -key RMQ-client-key.pem -out RMQ-signingrequest.csr

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

  3. 生成自签名证书

    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

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

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 的配置文件:

cd ~/rabbitmq_server-3.11.6/etc/rabbitmq/
vim rabbitmq.conf

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

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 格局:

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

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

  • TLS Support
  • Management Plugin
退出移动版