第 22 章 消息排队


消息排队服务有助于 OpenStack 中的进程间通信。这可以通过这些消息排队服务后端完成:

  • RabbitMQ - Red Hat OpenStack Platform 默认使用 RabbitMQ。
  • Qpid

RabbitMQ 和 Qpid 都是高级消息队列协议(AMQP)框架,它为对等通信提供消息队列。队列实施通常部署为队列服务器的集中式或分散池。

消息队列有效有助于命令和控制 OpenStack 部署之间的功能。允许访问队列后,不会执行进一步的授权检查。通过队列访问的服务来验证实际消息有效负载中的上下文和令牌。但是,您必须记下令牌的过期日期,因为令牌可能会重新显示,并可授权基础架构中其他服务。

OpenStack 不支持消息级的信任,如消息签名。因此,您必须保护并验证消息传输本身。对于高可用性(HA)配置,您必须执行队列到队列验证和加密。

22.1. 消息传递传输安全性

基于 AMQP 的解决方案(Qpid 和 RabbitMQ)支持使用 TLS 进行传输级安全性。

考虑为您的消息队列启用传输级别加密。使用 TLS 进行消息传递客户端连接可为通信提供保护,防止通信被篡改并转至消息传递服务器。以下提供了关于如何为两个流行消息传递服务器配置 TLS 的指导信息: Qpid 和 RabbitMQ。当配置您的消息传递服务器用来验证客户端连接的可信证书颁发机构(CA)捆绑包时,建议将此限制为用于节点的 CA,最好是内部管理的 CA。可信 CA 的捆绑包将决定哪个客户端证书将被授权并传递设置 TLS 连接的客户端验证步骤。

注意

安装证书和密钥文件时,请确保文件权限受限,例如使用 chmod 0600,并且所有权仅限于消息传递服务器守护进程用户,以防止由消息传递服务器上的其他进程和用户进行未授权的访问。

22.1.1. RabbitMQ 服务器 SSL 配置

以下行应添加到系统范围的 RabbitMQ 配置文件中,通常为 /etc/rabbitmq/rabbitmq.config

[
  {rabbit, [
     {tcp_listeners, [] },
     {ssl_listeners, [{"<IP address or hostname of management network interface>", 5671}] },
     {ssl_options, [{cacertfile,"/etc/ssl/cacert.pem"},
                    {certfile,"/etc/ssl/rabbit-server-cert.pem"},
                    {keyfile,"/etc/ssl/rabbit-server-key.pem"},
                    {verify,verify_peer},
                    {fail_if_no_peer_cert,true}]}
   ]}
].
Copy to Clipboard Toggle word wrap
注意

tcp_listeners 选项设为 [],以防止它侦听非 SSL 端口。ssl_listeners 选项应限制为仅侦听该服务的管理网络。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat