• 【EasyNetQ】- 使用SSL连接


    EasyNetQ可以通过SSL连接。戈登·库尔特(Gordon Coulter)撰写的这本指南最初是针对一个提出的问题而写的。

    首先,您必须仔细按照https://www.rabbitmq.com/ssl.html上的步骤操作我花了很多时间试图让openssl部分工作,然后花更多的时间让它按照我需要的方式工作而不仅仅是罐装演示。

    即使你让EasyNetQ使用SSL,他们在该页面上显示的那些DotNet示例代码可用于测试也是一个很大的帮助。我有一个简单的控制台应用程序,其中包含Rabbit和下面的EasyNetQ代码。还可以使用Rabbit日志。它们有时比某些错误时客户端发出的更具体。

    当您连接时,管理屏幕会在连接屏幕上的协议标签下显示一个小SSL。您还应该在Overview选项卡上的侦听端口表中看到端口443(假设您绑定的内容)。

    SSL

    使这项工作的示例代码如下:

    var connection = new ConnectionConfiguration();
    
    connection.Port = 443;
    connection.UserName = "user";
    connection.Password = "pass";
    connection.Product = "SSLTest";
    
    var host1 = new HostConfiguration();
    host1.Host = "rmq1.contoso.com";
    host1.Port = 443;
    host1.Ssl.Enabled = true;
    host1.Ssl.ServerName = "rmq1.contoso.com";
    host1.Ssl.CertPath = "c:\tmp\myclient.p12";
    host1.Ssl.CertPassphrase = "secret";
    
    var host2 = new HostConfiguration();
    host2.Host = "rmq2.contoso.com";
    host2.Port = 443;
    host2.Ssl.Enabled = true;
    host2.Ssl.ServerName = "rmq2.contoso.com";
    host2.Ssl.CertPath = "c:\tmp\myclient.p12";
    host2.Ssl.CertPassphrase = "secret";
    
    connection.Hosts = new List<HostConfiguration> { host1, host2 };
    
    connection.Validate();        //VERY IMPORTANT - DOES CONFIG AS WELL AS VALIDATION!
    
    var Bus = RabbitHutch.CreateBus(connection, services => services.Register<IEasyNetQLogger>(logger => new DoNothingLogger()));
     

    即使ConnectionConfiguration上存在SslOption属性,设置SslOption属性的适当位置也在HostConfiguration对象上。在HostConfiguration对象上设置SSL选项可启用对群集方案的支持。请注意,在上面的示例中,我们指定了两个HostConfiguration对象。如果一个不可用,EasyNetQ的PersistentConnection功能将自动连接到下一个可用主机。在主机上配置SSL设置将允许它连接而没有任何错误。

    如果只指定一个主机,则可以选择直接在HostConfiguration对象或ConnectionConfiguration对象上设置SslOptions。

    不要忘记调用Validate()。我最初跳过了(基于我对所有内容进行了硬编码,因此可能没有任何错误需要验证)。但是,该方法调用实际上应用了使连接工作所需的各种设置。

    您可以在此处参考SslOption类获取 SslOption文档

    您可以尝试使用官方RabbitMQ .NET客户端进行配置和测试,并尝试首先运行示例,以阐明所有设置都是正确的,如此处所述的官方RabbitMQ SSL文档,然后才能对项目进行任何更改。

  • 相关阅读:
    springAOP源码分析之篇三:代理对象的执行
    springAOP源码分析之篇二:代理对象的生成
    css样式float造成的浮动“塌陷”问题的解决办法
    css font的简写规则
    CSS学习
    工具
    用过的库
    The requested URL ***** was not found on this serve
    修改DeDe标签Pagelist分页样式
    DedeCms autoindex和itemindex使用介绍
  • 原文地址:https://www.cnblogs.com/wangwust/p/9437323.html
Copyright © 2020-2023  润新知