c# - 创建安全连接

标签 c# ssl ssl-certificate ibm-mq mq

我有与 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/

相关文章:

c# - 比较 2 个自定义对象 - C#

java - 带有 cacerts 的自定义 trustStore 作为不在自定义 trustStore 中的 key 的后备

PostgreSQL SSL 配置

c# - 什么是条件同步?

c# - 使用存储过程更新 C# 中的列

c# - 如何将c#极坐标图的方向顺时针改为逆时针?

java - 如何在 Websphere 中创建 SSL 连接

python - 带有 ssl 客户端证书的 aiohttp

ssl - 使用 Chrome 的手机/平板电脑上的 Prestashop 1.6 SSL 错误

基于 Java 证书的身份验证