Hi All,
WSO2 Message Broker 3.0.0 is a distributed message broker that provides reliable messaging both secured and unsecured.
This post will explain on how the RabbitMQ .NET client can be used to publish or subscribe to WSO2 Message Broker 3.0.0 securely.
Creating the Certificate
Go to "<MB_HOME>/repository/resources/security" folder and run the following command. This will create a "cert" file which is the certification file for SSL communication. "wso2carbon.jks" is the trust store file. So we are exporting the certificate from the trust store. The "keytool" command comes with the JDK distribution.
keytool -export -keystore wso2carbon.jks -storepass wso2carbon -file carbon.cert -alias localhost -keypass wso2carbon
The Code
You can use the same implementation as mentioned in [1][2]. Only difference is we have to set the following properties to the "ConnectionFactory" object.
........ ........ // The connection factory to connect with the broker. ConnectionFactory factory = new ConnectionFactory(); // AMQP URL to connect to the broker. IProtocol protocol = Protocols.AMQP_0_9_1; factory.VirtualHost = "/carbon"; factory.UserName = "admin"; factory.Password = "admin"; factory.HostName = "localhost"; // Port for SSL factory.Port = 8672; factory.Protocol = protocol; // SSL configuration factory.Ssl.Enabled = true; factory.Ssl.CertPassphrase = "wso2carbon"; factory.Ssl.CertPath = @"C:\Users\wso2\Documents\wso2mb-3.0.0-ALPHA\repository\resources\security\carbon.cert"; factory.Ssl.ServerName = "localhost"; factory.Ssl.AcceptablePolicyErrors = System.Net.Security.SslPolicyErrors.RemoteCertificateChainErrors; factory.Ssl.Version = System.Security.Authentication.SslProtocols.Tls; using (IConnection conn = factory.CreateConnection()) { ............ ............
Set the correct path for "factory.Ssl.CertPath" to the "cert" file we generated in the earlier step.
Thats all guys!. Click here to download the sample .NET project(VS2010).
References...
[1] - https://docs.wso2.com/display/MB300/Publishing+and+Receiving+Messages+from+a+Queue[2] - https://docs.wso2.com/display/MB300/Publishing+and+Receiving+Messages+from+a+Topic
[3] - https://www.rabbitmq.com/ssl.html
[4] - http://pathberiya.blogspot.com/2010_08_01_archive.html
This comment has been removed by a blog administrator.
ReplyDelete