我有与 MQ 一起使用的 win 服务。
但我希望它可以使用 ssl channel 和带有公钥/私钥的数据库(为此)
请您解释一下如何做。
附注我不太擅长 MQ
现在我使用此代码连接到 MQ
MQEnvironment.Hostname = ConfigurationManager.AppSettings["HostnameIN"];
MQEnvironment.Channel = ConfigurationManager.AppSettings["ChannelIN"];
MQEnvironment.Port = int.Parse(ConfigurationManager.AppSettings["PortIN"]);
Environment.SetEnvironmentVariable("MQCCSID", ConfigurationManager.AppSettings["MQCCSID"]);
var mqQueueManagerName = ConfigurationManager.AppSettings["QueueManagerNameIN"];
var mqQueueName = ConfigurationManager.AppSettings["QueueNameIN"];
const int openOptions = MQC.MQOO_BROWSE | MQC.MQOO_INPUT_AS_Q_DEF;
var qMgr = new MQQueueManager(mqQueueManagerName);
var getOptions = new MQGetMessageOptions();
并使用此获取所有消息
using (var mqQueue = qMgr.AccessQueue(mqQueueName, openOptions))
{
try
{
//while (mqQueue.CurrentDepth>0)
while (true)
{
var message = new MQMessage();
//message.Version = 2;
getOptions.Options = MQC.MQGMO_WAIT | MQC.MQGMO_BROWSE_NEXT;
mqQueue.Get(message, getOptions);
mqMessages.Add(message);
}
}
最佳答案
为了将 MQ 设置为在您正在使用的 channel 上使用 SSL,您根本不需要进行任何应用程序更改 - 您只需将您在队列管理器上使用的 channel 配置为要求SSL。客户端、JVM 和队列管理器中的库将为您建立安全连接。因此理论上您需要做的就是对 MQSC/MQ Explorer 进行更改,这将在 channel 上配置 SSL。
建议您阅读 IBM 知识中心的以下页面。它为将客户端安全连接到队列管理器的各种方法提供了多种场景: http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.sce.doc/q014220_.htm
关于c# - 创建安全连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25034532/