我们使用rabbitmq-management
REST API 对rabbitmq
的实体(队列/交换)进行不同的操作。通过登录名/密码进行的标准身份验证工作正常,但出于某些原因,我们希望使用无密码身份验证(基于 ssl 证书)。根据文档(https://www.rabbitmq.com/management.html),看起来有这种可能性。
但是如果我们尝试配置插件:
高级配置
{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 会话):
- | 隧道到 | HTTP/1.1 200 连接已建立(发现与 SSLv3 兼容的 ClientHello 握手)
- | 主机名 | HTTP/1.1 401 未经授权
是否可以对rabbitmq-management
插件使用基于证书的身份验证?如果是,有人可以提供任何样本或文档链接我们必须做什么?