RabbitMQ 中如何配置 TLS/SSL?

推荐答案

在 RabbitMQ 中配置 TLS/SSL 可以通过以下步骤完成:

  1. 生成证书:首先需要生成或获取服务器证书和私钥。可以使用 OpenSSL 工具生成自签名证书,或者从受信任的证书颁发机构(CA)获取证书。

  2. 配置 RabbitMQ:在 RabbitMQ 配置文件中启用 TLS/SSL。编辑 rabbitmq.conf 文件,添加以下配置:

  3. 重启 RabbitMQ:保存配置文件后,重启 RabbitMQ 服务以使配置生效。

  4. 客户端配置:客户端连接时需要配置相应的 TLS/SSL 参数,包括 CA 证书、客户端证书和私钥。

本题详细解读

1. 生成证书

在配置 TLS/SSL 之前,首先需要生成或获取服务器证书和私钥。可以使用 OpenSSL 工具生成自签名证书,或者从受信任的证书颁发机构(CA)获取证书。以下是使用 OpenSSL 生成自签名证书的示例命令:

2. 配置 RabbitMQ

在 RabbitMQ 配置文件中启用 TLS/SSL。编辑 rabbitmq.conf 文件,添加以下配置:

  • listeners.ssl.default:指定 RabbitMQ 监听的 SSL 端口,默认是 5671。
  • ssl_options.cacertfile:指定 CA 证书的路径。
  • ssl_options.certfile:指定服务器证书的路径。
  • ssl_options.keyfile:指定服务器私钥的路径。
  • ssl_options.verify:指定是否验证客户端证书,verify_peer 表示验证客户端证书。
  • ssl_options.fail_if_no_peer_cert:指定是否要求客户端提供证书,false 表示不强制要求。

3. 重启 RabbitMQ

保存配置文件后,重启 RabbitMQ 服务以使配置生效。可以使用以下命令重启 RabbitMQ:

4. 客户端配置

客户端连接时需要配置相应的 TLS/SSL 参数,包括 CA 证书、客户端证书和私钥。以下是一个 Python 客户端使用 pika 库连接 RabbitMQ 的示例:

-- -------------------- ---- -------
------ ----

----------- - -
    ----------- ------------------------------
    ----------- ----------------------------------
    ---------- --------------------------
    ------------ -----------------
-

---------- - --------------------------
    -----------------
    ----------
    ---------
    -----------------------
-

---------- - -----------------------------------
------- - --------------------

通过以上步骤,RabbitMQ 的 TLS/SSL 配置就完成了。

纠错
反馈