如何通过Apache.NMS C#客户端库通过SSL连接到ActiveMQ

问题描述

我有一台安装ActiveMQ的服务器,还生成了SSL所需的证书。

我已将代理证书添加到本地计算机的密钥库中,然后尝试通过SSL连接ActiveMQ,但出现类似not able to connect using ipaddress:61617错误

TCP一切正常,但问题是我尝试通过SSL连接时。

这是用于连接到ActiveMQ的代码段。

IConnectionFactory factory = new NMSConnectionFactory(AMQURL);
IConnection AMQConnection = factory.CreateConnection();
AMQConnection.ClientId = ClientId;
AMQConnection.Start();
ISession AMQSession = AMQConnection.CreateSession();

我指的是this documentation来设置SSL。

这是我尝试连接的Active MQ端点。 activemq:ssl://服务器IP地址:61617

我正在使用Apache.NMS.ActiveMQ版本1.7.2

我在activemq.xml文件的trasportconnectors部分中添加了以下行。

解决方法

为了连接到代理,您的客户端需要配置有关它应该信任的 SSL 证书的信息,如果使用相互身份验证,您需要提供客户端密钥。

有一篇文章详细介绍了此过程 here

或者,我相信有一种方法可以将密钥和信任存储数据存储在 Windows 注册表和/或本地机器存储中,一些文档 here