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

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

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

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

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

var connection = new ConnectionConfiguration();

connection.Port = ;
connection.UserName = "user";
connection.Password = "pass";
connection.Product = "SSLTest"; var host1 = new HostConfiguration();
host1.Host = "rmq1.contoso.com";
host1.Port = ;
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 = ;
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文档,然后才能对项目进行任何更改。

【EasyNetQ】- 使用SSL连接的更多相关文章

  1. EasyNetQ使用(二)【连接RabbitMQ,SSL连接,Logging】

    如果你连接过关系数据库,例如SQL Server.你会发现EasyNetQ处理connections有点奇怪.和关系数据库通讯一直都是通过client开始的.Client 打开一个连接, 发出一个SQ ...

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

    EasyNetQ可以通过SSL进行连接.这篇指南的作者Gordon Coulter最初为回应一个提问写的. 首先,你必须仔细依据https://www.rabbitmq.com/ssl.html文章中 ...

  3. 无法建立SSL连接

    在使用wget工具的过程中,当URL使用HTTPS协议时,经常出现如下错误:“无法建立SSL连接”. 这是因为wget在使用HTTPS协议时,默认会去验证网站的证书,而这个证书验证经常会失败.加上&q ...

  4. 使用sslsplit嗅探tls/ssl连接

    首先发一个从youtube弄到的sslsplit的使用教程 http://v.qq.com/page/x/k/s/x019634j4ks.html 我最近演示了如何使用mitmproxty执行中间人攻 ...

  5. 使用 JSSE 定制 SSL 连接的属性--转载

    当数据在网络上传播的时候,通过使用 SSL 对其进行加密和保护,JSSE 为 Java 应用程序提供了安全的通信.在本篇有关该技术的高级研究中,Java 中间件开发人员 Ian Parkinson 深 ...

  6. 在linux下的apache配置https协议,开启ssl连接

    环境:linux 配置https协议,需要2大步骤: 一.生成服务器证书 1.安装openssl软件 yum install -y openssl mod_ssl 2.生成服务器私匙,生成server ...

  7. 为ownCloud配置SSL连接

    为ownCloud配置SSL连接 在你开始使用ownCloud之前,强烈建议你在ownCloud中启用SSL支持.使用SSL可以提供重要的安全好处,比如加密ownCloud流量并提供适当的验证.在本教 ...

  8. python安装的时候报SSL连接错误的解决办法

    Collecting xlwt   Could not fetch URL https://pypi.python.org/simple/xlwt/: There was a problem conf ...

  9. java ssl 连接AD域

    1.安装证书服务和IIS服务,不需要启动asp.(其会在c盘生成一个crt文件)2.获取crt证书文件 windows 2003:文件位于系统盘根目录 windows 2008: 文件位于C:\Win ...

随机推荐

  1. js关于if(''==0)

    在js当中,如下注意 if(''==0){ alert("空字符代表false"); } 空字符串代表false 0代表false false==false 结果就为true了

  2. spring mvc中几种获取request对象的方式

    在使用spring进行web开发的时候,优势会用到request对象,用来获取访问ip.请求头信息等 这里收集几种获取request对象的方式 方法一:在controller里面的加参数 public ...

  3. hibernate中配置单向多对一关联,和双向一对多,双向多对多

    什么是一对多,多对一? 一对多,比如你去找一个父亲的所有孩子,孩子可能有两个,三个甚至四个孩子. 这就是一对多 父亲是1 孩子是多 多对一,比如你到了两个孩子,它们都是有一个共同的父亲. 此时孩子就是 ...

  4. Vue+webpack构建一个项目

    1.安装CLI命令的工具  推荐用淘宝的镜像 npm install -g @vue/cli @vue/cli-init 2.使用命令构建一个名为myapp的项目 vue init webpack m ...

  5. 继上一篇bootstrap框架(首页)弄的资讯页面

    还是和上一篇首页一样给出每一步的注解: 做的有点简单,但是,以后还是会加深的.毕竟是初学者嘛! <html lang="zh-cn">   <head>   ...

  6. 终于搞定了cxgrid的多行表头(转终于搞定了cxgrid的多行表头 )

    终于搞定了cxgrid的多行表头 转自:http://mycreature.blog.163.com/blog/static/556317200772524226400/     这一周都在处理dbg ...

  7. ruby $LOAD_PATH及类加载

    $LOAD_PATH $LOAD_PATH 指的是Ruby读取外部文件的一个环境变量,其实和windows的环境变量是一个概念.Ruby会在这个环境变量的路径中读取需要require的文件,如果在环境 ...

  8. 线程基础三 使用C#中的lock关键词

    C#中lock关键字主要是为确保当一个线程使用某些资源时,同时无法其他线程无法使用该资源.下面我们看看下面的小例子. static void Main(string[] args) { var c = ...

  9. 汇编实验14:访问CMOS RAM

    汇编实验14:访问CMOS RAM 任务 编程,以“年/月/日 时:分:秒”的格式,显示当前的日期,时间. 预备知识 CMOS存储当前时间的信息:年.月.日.时.分.秒.这六个信息的长度均为1个字节, ...

  10. web框架与爬虫

    所有的web框架 http://www.cnblogs.com/wupeiqi/articles/5341480.html 爬虫技术 http://www.cnblogs.com/wupeiqi/ar ...