【EasyNetQ 教程】- 使用SSL连接

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 = 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文档,然后才能对项目进行任何更改。

原文地址:https://www.cnblogs.com/wangwust/p/9437323.html

时间: 2024-10-30 01:44:07

【EasyNetQ 教程】- 使用SSL连接的相关文章

为ownCloud配置SSL连接

为ownCloud配置SSL连接 在你开始使用ownCloud之前,强烈建议你在ownCloud中启用SSL支持.使用SSL可以提供重要的安全好处,比如加密ownCloud流量并提供适当的验证.在本教程中,将会为SSL使用一个自签名的证书. 创建一个储存服务器密钥和证书的目录: # mkdir /etc/apache2/ssl 创建一个证书(并有一个密钥来保护它),它有一年的有效期. # openssl req -x509 -nodes -days 365 -newkey rsa:2048 -k

使用sslsplit嗅探tls/ssl连接

我最近演示了如何使用mitmproxty执行中间人攻击HTTP(S)连接.当mitmproxy工作支持基于HTTP的通信,它不了解其他基于基于TLS/SSL的流量,比如FTPS,通过SSL的SMTP,通过SSL的IMAP或者其他一些覆盖TLS/SSL的协议. SSLsplit是一般的通过所有安全通信协议来进行中间人攻击TLS/SSL代理.使用SSLsplit可以拦截保存基于SSL流量,从而监听任何安全连接. 1.工作原理 SSLsplit和其他SSL代理工具十分相似:它可以作为客户端和服务器之间

利用openssl实现私有CA以及mysql服务器的ssl连接的配置

利用openssl实现私有CA以及mysql服务器的ssl连接的配置 一.CA简介 CA 也拥有一个证书(内含公钥和私钥).网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书. 如果用户想得到一份属于自己的证书,他应先向 CA 提出申请.在 CA 判明申请者的身份后,便为他分配一个公钥,并且 CA 将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者. 如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对

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

当数据在网络上传播的时候,通过使用 SSL 对其进行加密和保护,JSSE 为 Java 应用程序提供了安全的通信.在本篇有关该技术的高级研究中,Java 中间件开发人员 Ian Parkinson 深入研究了 JSSE API 较不为人知的方面,为您演示了如何围绕 SSL 的一些限制进行编程.您将学习如何动态地选择 KeyStore 和 TrustStore.放宽 JSSE 的密码匹配要求,以及构建您自己定制的 KeyManager 实现. JSSE(Java 安全套接字扩展,Java Secu

在libuv中使用openssl建立ssl连接

在libuv中使用openssl建立ssl连接 @(blogs) 使用openssl进行加密通信时,通常是先建立socket连接,然后使用SSL_XXX系列函数在普通socket之上建立安全连接,然后发送和接收数据.openssl的这些函数可以支持底层的socket是非阻塞模式的.但当将openssl和libuv进行结合时,会遇到一些问题: 1. openssl在进行数据读写之前,需要进行若干次"握手"."握手"中会有若干次的数据读写.这个在普通的socket连接中

javamail发件、收件(SSL连接)

需要的包:mail.jar  jsse.jar(说明:jsse.jar是jre自带的,如果jdk1.5及以下需要Java Activation Framework框架的activation.jar) [发件] import java.net.URL; import java.security.Security; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.Fil

java ssl 连接AD域

1.安装证书服务(其会在c盘生成一个crt文件)2.获取在c盘生成的crt文件3.将该文件通过keytool导入idm的jdkkeytool -importcert -trustcacerts -keystore D:\201.work\11.公司技术文件\辅助工具\jdk1.6\jre\lib\security\cacerts -alias caroot -file ssoad02.one.com_ca.crt -storepass "changeit" keytool –delet

ECMall如何支持SSL连接邮件服务器的配置

首先,主要是ecmall使用的phpmailer版本太低,不支持加密连接. 然后,得对相应代码做一定调整. 1. 覆盖phpmailer 请从附件进行下载: http://files.cnblogs.com/x3d/ecmall_phpmailer_lib.zip 2. 改造lib 涉及到两个lib:mail.lib.php .mail_quequ.lib.php 在这两个类的构造函数中,增加一个参数传递.如Mailer function __construct($from, $email, $

已使用 163 邮箱测试通过,且支持 SSL 连接。 发送邮件

示例:Jack 发送一封邮件给 Rose. public class SendMail {     public static void main(String[] args) {         boolean isSSL = true;         String host = "smtp.163.com";         int port = 465;         String from = "[email protected]";         S