跳至主内容
版本:4.3

URI 查询参数

概述

本页面是 URI 规范TLS 指南的非正式补充,记录了官方支持的客户端如何解析 URI 参数。目前只有 Erlang 客户端支持此功能。

Federation(联盟)Shovel 插件使用 URI 指定到其他代理的连接,并且它们是使用 Erlang 客户端实现的,因此它们支持此处描述的所有参数。

基础知识

查询参数以常用方式添加到 URI 中。任何参数都可以省略。如果省略,客户端将选择合理的默认值。

示例 A

一个禁用 TLS 的连接 URI 示例

amqp://myhost?heartbeat=5&connection_timeout=10000

这指定了到主机 myhost 的(非加密)网络连接。心跳间隔设置为 5 秒,连接超时设置为 10 秒(10,000 毫秒)。其他参数设置为其默认值。

示例 B

在以下 URI 示例中,启用了 TLS 以及连接客户端端的 TLS 对等验证

amqps://myhost?cacertfile=/path/to/ca_certificate.pem
&certfile=/path/to/client_certificate.pem
&keyfile=/path/to/client_key.pem
&verify=verify_peer
&server_name_indication=myhost

示例 C

在以下 URI 示例中,启用了 TLS,但禁用了连接客户端端的 TLS 对等验证

amqps://myhost?cacertfile=/path/to/ca_certificate.pem
&certfile=/path/to/client_certificate.pem
&keyfile=/path/to/client_key.pem
&verify=verify_none
&server_name_indication=myhost

TLS 参数

这指定了到主机 myhost 的加密网络连接。提供了证书文件的绝对路径。verify_peer 确保验证证书信任链,server_name_indication 根据主机名 myhost 验证服务器证书中的 CN 值。

参数名称描述
cacertfile
certfile
keyfile

用于向服务器提供客户端 SSL 证书的文件路径。仅适用于 amqps 方案。

password

keyfile 指定的私钥文件的密码。仅在设置了 keyfile 且该文件指向受密码保护的私钥时使用。

verify
server_name_indication

仅适用于 amqps 方案,用于配置服务器 x509 (TLS) 证书的验证。注意:强烈建议同时使用这两个值。请参阅 TLS 指南以了解有关 RabbitMQ 中 TLS 支持的常规信息,特别是 Erlang 客户端部分。

auth_mechanism

与服务器协商机制时要考虑的 SASL 身份验证机制。此参数可以多次指定,例如 ?auth_mechanism=plain&auth_mechanism=amqplain,以指定多种机制。

heartbeat

心跳超时值(秒,整数),用于与服务器进行协商。

connection_timeout

建立到服务器的 TCP 连接时等待的时间(毫秒,整数),超过此时间则放弃连接。

channel_max

此连接允许的最大通道数。

TLS 选项也可以在 advanced.config 中使用 amqp_client.ssl_options 配置键进行全局指定,如下所示

{amqp_client, [
{ssl_options, [
{cacertfile, "path-to-ca-certificate"},
{certfile, "path-to-certificate"},
{keyfile, "path-to-keyfile"},
{verify, verify_peer}
]}
]}.

它们将与来自 URI 的 TLS 参数合并(后者优先级更高),并影响节点上所有向外的 RabbitMQ Erlang 客户端连接,包括内部使用该客户端的插件(Federation、Shovel 等)。请参阅 TLS 指南以获取详细信息。

© . This site is unofficial and not affiliated with VMware.