• 3-在EasyNetQ上使用SSL连接(黄亮翻译)


    EasyNetQ可以通过SSL进行连接。这篇指南的作者Gordon Coulter最初为回应一个提问写的。

    首先,你必须仔细依据https://www.rabbitmq.com/ssl.html文章中的步骤。我花费了很多时间尝试让openssl这部分能运作起来,然后为了让他按我的需要去运作而不仅仅只是一个demo,我又花费了很多时间。

    第一次通过SSL让EasyNetQ运作时,在他们为了测试而做的可以运行的页面上的那点DotNet代码给我提供了很大帮助。我有一个简单的控制台程序,包涵了Rabbit和EasyNetQ代码,会在下面展示。此外使用了Rabbit logs。

    当你连接上后,管理界面的connection页面会显示一个小的SSL协议标签。你也在Overview 选项卡的端口监听表里看到443端口。

    代码如下:

    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上有一个Ssl选项属性,但在HostConfiguration对象上设置Ssl选项属性是一个合适的地方。HostConfiguration对象上设置SSL选项可以支持集群的场景。注意,在上面代码中我们指定了两个HostConfiguration对象。假如一个挂了,EasyNetQ的持续连接功能将自动连接到下一个可用的主机。在这个主机上配置SSL在连接时就不会出现任何错误。

    假如你仅仅指定一个主机,你可以选择通过HostConfiguration对象去设置SSL选项,也可以直接用ConnectionConfiguration对象去设置。

    不要忘记调用Validate()方法。我最初跳过那儿(基本上我写的都是硬编码,因此可能没有什么错误需要验证)。但是,这个方法调用实际上回去应用一系列设置,为了确保连接运行是必要的。

    SslOption详情参见文档SslOption Class

    你可以尝试用官方的RabbitMQ .NET client去配置和测试,尝试去运行示例。首先要阐明,在你的项目做任何修改前,所有这些设置都被正确的描述在 Official RabbitMQ SSL documentation for .NET.

    原文地址:https://github.com/EasyNetQ/EasyNetQ/wiki/Connecting-with-SSL

  • 相关阅读:
    Android开发之JSON数据发送与获取
    Layouts之TableLayout表格布局
    Layouts之GridLayout网格布局
    Android WiFi模块学习
    关于Fragment的讲解及适配
    hive 压缩全解读(hive表存储格式以及外部表直接加载压缩格式数据);HADOOP存储数据压缩方案对比(LZO,gz,ORC)
    Dynamics CRM SQL转化为FetchXML的在线转化工具
    Dynamics CRM 通过Odata创建及更新记录各类型字段的赋值方式
    shell命令执行hive脚本(hive交互,hive的shell编程)
    CRM 2013 Script Loading Deep Dive
  • 原文地址:https://www.cnblogs.com/HuangLiang/p/EasyNetQ_SSL.html
Copyright © 2020-2023  润新知