Rabbitmq-management插件可以使用基于证书的身份验证吗?

j

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

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

advanced.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)
 }

我们得到以下内容(提琴手会议):

  1. | 通往| HTTP / 1.1 200连接已建立(找到了与SSLv3兼容的ClientHello握手)
  2. | 主机名| HTTP / 1.1 401未经授权

rabbitmq-management插件可以使用基于证书的身份验证吗?如果是,有人可以提供任何样品或文档链接吗?

卢克·巴肯(Luke Bakken)

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

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


注:在RabbitMQ的团队监控rabbitmq-users邮件列表,只有时StackOverflow上回答问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章