gpt4 book ai didi

c# - 与 IBM WEB MQ 的 SSL 连接问题

转载 作者:行者123 更新时间:2023-11-30 20:46:22 25 4
gpt4 key购买 nike

我正在尝试使用 c#.net 应用程序连接 ssl“必需” channel 。 我按照以下步骤创建和交换证书

在 IBM key 管理工具的帮助下,我在 websphere MQ 服务器 (192.168.10.2) 中创建了自签名证书 然后将其提取为 server.arm

enter image description here

然后在客户端做同样的事情

enter image description here

之后我将 server.arm 复制到客户端机器 (192.168.10.1) 并将 client.arm 复制到 WMQ 服务器 (192.168.10.2)

在服务器的 IBM key 管理工具中,我选择了签署者证书并添加了 client.arm 我将标签名称设置为 ibmwebspheremqclient 然后在客户机 (192.168.10.1) 中,我将 server.arm 添加为签名者证书并将标签设置为 ibmwebspheremqqm_sslconnect

这是我的 channel 配置。如果我将此设置设置为可选,那么这对我来说工作正常,但我必须将 SSL 选项启用为“必需”。

enter image description here

enter image description here

当我尝试连接这个代码块时

using IBM.WMQ;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

public class SSLConnectionTest
{
const String connectionType = IBM.WMQ.MQC.TRANSPORT_MQSERIES_CLIENT;
const String qManager = "QM_SSLConnect";
const String hostName = "192.168.10.2";
const String channel = "ADMIN.TLS.SVRCONN";
const String port = "1480";
const String sslKeyRepository = @"C:\Program Files (x86)\IBM\WebSphere MQ\ssl\key";
const String cipherSpec = "TLS_RSA_WITH_AES_128_CBC_SHA256";
const String cipherSuite = "SSL_RSA_WITH_AES_128_CBC_SHA256";

public Hashtable init()
{
Hashtable properties = new Hashtable();

properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT);
properties.Add(MQC.HOST_NAME_PROPERTY, hostName);
properties.Add(MQC.PORT_PROPERTY, port);
properties.Add(MQC.CHANNEL_PROPERTY, channel);

properties.Add(MQC.SSL_CERT_STORE_PROPERTY, sslKeyRepository);
properties.Add(MQC.SSL_CIPHER_SUITE_PROPERTY, cipherSuite);
properties.Add(MQC.SSL_CIPHER_SPEC_PROPERTY, cipherSpec);

return properties;
}

public void TestSSLConnection()
{
try
{
Hashtable connectionProperties = init();
MQQueueManager qMgr = new MQQueueManager(qManager, connectionProperties);

}
catch (MQException ex)
{
Console.WriteLine("A WebSphere MQ error occurred: {0}", ex.ToString());
}
catch (System.Exception ex)
{
Console.WriteLine("A System error occurred: {0}", ex.ToString());
}
}

}

它给了我这个错误代码 enter image description here

我已经刷新了REFRESH SECURITY TYPE(SSL)

我在我的客户端 (192.168.10.1) C:\Program Files (x86)\IBM\WebSphere MQ\errors\AMQERR01.LOG 中发现了以下错误 https://docs.google.com/document/d/1gc0AoxQpdLNg1pz_vkw-tapWDNclYXY5ql_aMIVBMfA/edit?usp=sharing

和我的服务器的 192.168.10.2 错误日志 https://docs.google.com/document/d/1lxzo41TWauAyYKH1wcXOxj6HYlTYkSUoPjaTmsJHxYI/edit?usp=sharing

谁能帮帮我???

最佳答案

AMQERR01.LOG 文件中的错误告诉您客户端证书未被提取。标签应为 ibmwebspheremq<client-logged-on-user>

从您的屏幕截图中我可以看到您的证书标签是 ibmwebspheremqclient但从命令提示符的屏幕截图来看,您的登录用户 ID 可能实际上是 herath ,在这种情况下,MQ 代码将查找证书标签 ibmwebspheremqherath ,找不到它,所以匿名。

将您的客户端证书的标签重命名为适当的标签,并查看它现在是否可以拾取它。

关于c# - 与 IBM WEB MQ 的 SSL 连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27141888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com