rabbitmq - 是否可以对rabbitmq管理插件使用基于证书的身份验证?

标签 rabbitmq rabbitmq-management

我们使用rabbitmq-management REST API 对rabbitmq 的实体(队列/交换)进行不同的操作。通过登录/密码进行的标准身份验证工作正常,但由于某些原因,我们希望使用无密码身份验证(基于 ssl 证书)。根据文档( https://www.rabbitmq.com/management.html ),看起来有这种可能性。

但是如果我们尝试配置插件:

高级.config

{rabbitmq_management,
  [{listener, [{port,     15671},
               {ssl,      true},
               {ssl_opts, [{cacertfile, "c:/Services/certs/cacert.pem"},
                           {certfile,   "c:/Services/certs/cert.pem"},
                           {keyfile,    "c:/Services/certs/key.pem"}]}
              ]}
  ]
}

我们客户的.NET应用

public Foo(string url, X509Certificate clientCert)
{
    var handler = new HttpClientHandler();
    handler.ClientCertificates.Add(clientCert);

    _httpClient = new HttpClient(handler);

    var result = await _httpClient.GetAsync(uri)
 }

我们得到以下内容(Fiddler session ):

  1. |隧道到 | HTTP/1.1 200 连接建立(发现 SSLv3 兼容的 ClientHello 握手)
  2. |主机名 | HTTP/1.1 401 未经授权

是否可以对rabbitmq-management插件使用基于证书的身份验证?如果是,有人可以提供我们必须做的任何示例或文档链接吗?

最佳答案

我最近在 rabbitmq-users 邮件列表上回答了这个问题:link .

简单的回答是,您可以将服务器配置为需要客户端证书并验证它是否由受信任的根证书签名,但您仍然需要提供用户名和密码 - 不会从中提取用户证书。

关于rabbitmq - 是否可以对rabbitmq管理插件使用基于证书的身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52150803/

相关文章:

docker - 如何从minikube访问Rabbitmq的管理UI?

ssl - 如何为 rabbitmq 添加密码套件支持?

c# - 使用 C# 启用 RabbitMQ 管理插件

java - 超出最大许可数

rabbitmq - 有没有办法在 AMQP 路由键中指定 "not matching"?

java - RabbitMQ Stomp 通过 websocket : Unable to retrieve queued messages

php - 如何在网络浏览器上使用 php-amqplib rabbitMQ

windows - 使用 RabbitMQ 在 Windows 安装上更新 Erlang 的最佳方法是什么