#ssl #asp.net-core #masstransit #cloudamqp
#ssl #asp.net-ядро #masstransit #cloudamqp
Вопрос:
Я изо всех сил пытался выяснить, как я должен настроить MassTransit и наш новый выделенный экземпляр cloudamqp для работы с SSL (примечание: без SSL все работает нормально).
Я попытался добавить строку useSSL в приведенный ниже код, который я нашел в какой-то старой документации, но это не сработало:
var bus = Bus.Factory.CreateUsingRabbitMq(sbc =>
{
var host = sbc.Host(new Uri(messageBusConfiguration["Host"]), h =>
{
h.Username(messageBusConfiguration["Username"]);
h.Password(messageBusConfiguration["Password"]);
h.UseSsl(s => {});
});
});
В cloudamqp я также настроил его на разрешение ampqs, и мои сервисы / API настроены и выполняются в IIS с использованием HTTPs без каких-либо проблем.
Я подозреваю, что мне здесь не хватает чего-то фундаментального, но я не могу найти никакой документации по этому поводу.
Ответ №1:
У меня это работает, обратите внимание, что порт должен быть указан.
var busControl = Bus.Factory.CreateUsingRabbitMq(x =>
{
var host = x.Host(new Uri("rabbitmq://wombat.rmq.cloudamqp.com:5671/your_vhost/"), h =>
{
h.Username("your_username");
h.Password("your_password");
h.UseSsl(s =>
{
s.Protocol = SslProtocols.Tls12;
});
});
x.ReceiveEndpoint(host, "input_queue", e =>
{
});
});
await busControl.StartAsync(new CancellationTokenSource(TimeSpan.FromSeconds(30)).Token);
await busControl.StopAsync();
Комментарии:
1. Кроме того, я только что добавил автоматический выбор порта для указания
rabbitmqs
oramqps
в качестве схемы в URI и автоматический выбор SSL.2. Это сработало отлично. Однако я не уверен, что полностью понимаю ваш комментарий по поводу автоматического выбора порта. Это будет в более поздней версии? Означает ли это, что я могу просто изменить URI на rabbitmqs://<cloudampqhost> / <vhost> без номера порта?
3. Это будет в более поздних версиях, но пока вам нужно указать порт.
4. Могу ли я изменить схему «rabbitmq: //» на amqp: // и все еще работать?
5. Да, он будет работать с любым из них
amqp
или использоватьamqps
для TLS.