Мы используем rabbitmq-management
REST 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)
}
Мы получаем следующее (сессия Fiddler):
- | Туннель до | HTTP / 1.1 200 Установлено соединение (найдено SSLv3-совместимое рукопожатие ClientHello)
- | HostName | HTTP / 1.1 401 Несанкционированный
Можно ли использовать аутентификацию на основе сертификатов для плагина rabbitmq-management
? Если да, может кто-нибудь дать какие-либо образцы или ссылку на документацию, что мы должны сделать?