使用 pfx 证书的 Azure Function IBM MQ 设置
Azure Function IBM MQ Setup with pfx Certificate
当我尝试使用 Azure Function[=25= 中的 IBM.XMS 命名空间建立与 IBM MQ V6 QueueManager 和 .net 客户端的连接时,我遇到了连接问题].
我正在这样设置连接:
XMSFactoryFactory xff = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);
IConnectionFactory cf = xff.CreateConnectionFactory();
cf.SetStringProperty(XMSC.WMQ_HOST_NAME, "servername.ibmcloud.com");
cf.SetIntProperty(XMSC.WMQ_PORT, 1415);
cf.SetStringProperty(XMSC.WMQ_CHANNEL, "SYSTEM.SSL.SVRCONN");
cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT); //Managed Client
cf.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, "OM_QMGR");
cf.SetIntProperty(XMSC.WMQ_BROKER_VERSION, XMSC.WMQ_BROKER_V1);
cf.SetStringProperty(XMSC.WMQ_CONNECTION_NAME_LIST, "servername.ibmcloud.com(1415)");
cf.SetStringProperty(XMSC.WMQ_SSL_CLIENT_CERT_LABEL, "ibmwebspheremqsystem");
cf.SetStringProperty(XMSC.WMQ_SSL_CIPHER_SPEC, "TLS_RSA_WITH_AES_128_CBC_SHA256");
cf.SetStringProperty(XMSC.WMQ_SSL_KEY_REPOSITORY, "*SYSTEM");
return cf.CreateConnection();
当我 运行 它在我的本地机器上正常工作时,我的 MMC 控制台中安装了 pfx 证书。
在我的本地系统中,它工作正常,因为它能够从“系统”中找到 WMQ_SSL_KEY_REPOSITORY。
我在 Azure Function 中的“私钥证书”下添加了 pfx 证书,它看起来很健康,就像这张图片
但是当我调用 cf.CreateConnection 时,我收到错误 2538:MQRC_HOST_NOT_AVAILABLE 作为异常。
我知道这个问题是因为 WMQ_SSL_KEY_REPOSITORY 属性,我不确定要提供什么来代替“*SYSTEM”,以便它在 Azure Function 上正常工作。
如有任何帮助,我们将不胜感激。
谢谢大家
此问题已在 JoshMc 的评论中解决。
以上代码仅需一处修改即可与 Azure Function 一起使用。
将 *USER
作为 XMSC.WMQ_SSL_KEY_REPOSITORY
的值而不是 *SYSTEM
,这应该适用于 Azure Function。
当我尝试使用 Azure Function[=25= 中的 IBM.XMS 命名空间建立与 IBM MQ V6 QueueManager 和 .net 客户端的连接时,我遇到了连接问题].
我正在这样设置连接:
XMSFactoryFactory xff = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);
IConnectionFactory cf = xff.CreateConnectionFactory();
cf.SetStringProperty(XMSC.WMQ_HOST_NAME, "servername.ibmcloud.com");
cf.SetIntProperty(XMSC.WMQ_PORT, 1415);
cf.SetStringProperty(XMSC.WMQ_CHANNEL, "SYSTEM.SSL.SVRCONN");
cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT); //Managed Client
cf.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, "OM_QMGR");
cf.SetIntProperty(XMSC.WMQ_BROKER_VERSION, XMSC.WMQ_BROKER_V1);
cf.SetStringProperty(XMSC.WMQ_CONNECTION_NAME_LIST, "servername.ibmcloud.com(1415)");
cf.SetStringProperty(XMSC.WMQ_SSL_CLIENT_CERT_LABEL, "ibmwebspheremqsystem");
cf.SetStringProperty(XMSC.WMQ_SSL_CIPHER_SPEC, "TLS_RSA_WITH_AES_128_CBC_SHA256");
cf.SetStringProperty(XMSC.WMQ_SSL_KEY_REPOSITORY, "*SYSTEM");
return cf.CreateConnection();
当我 运行 它在我的本地机器上正常工作时,我的 MMC 控制台中安装了 pfx 证书。 在我的本地系统中,它工作正常,因为它能够从“系统”中找到 WMQ_SSL_KEY_REPOSITORY。
我在 Azure Function 中的“私钥证书”下添加了 pfx 证书,它看起来很健康,就像这张图片
但是当我调用 cf.CreateConnection 时,我收到错误 2538:MQRC_HOST_NOT_AVAILABLE 作为异常。 我知道这个问题是因为 WMQ_SSL_KEY_REPOSITORY 属性,我不确定要提供什么来代替“*SYSTEM”,以便它在 Azure Function 上正常工作。
如有任何帮助,我们将不胜感激。 谢谢大家
此问题已在 JoshMc 的评论中解决。
以上代码仅需一处修改即可与 Azure Function 一起使用。
将 *USER
作为 XMSC.WMQ_SSL_KEY_REPOSITORY
的值而不是 *SYSTEM
,这应该适用于 Azure Function。