Warm tip: This article is reproduced from serverfault.com, please click

其他-带有pfx证书的Azure Function IBM MQ安装程序

(其他 - Azure Function IBM MQ Setup with pfx Certificate)

发布于 2020-12-07 16:25:59

尝试使用Azure Function中的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函数”中添加了pfx证书,它看起来像上面的图像一样健康 Azure功能私钥证书

但是当我调用cf.CreateConnection时,出现错误2538:MQRC_HOST_NOT_AVAILABLE作为异常。我知道问题是由于WMQ_SSL_KEY_REPOSITORY属性,所以我不确定要提供什么来代替“ * SYSTEM”,以便在Azure Function上可以正常使用。

关于此的任何帮助将不胜感激。谢谢你们。

Questioner
Deepak
Viewed
0
8,727 2020-12-08 21:20:35

JoshMc的评论解决了这个问题。

上面的代码仅需进行一次修改即可与Azure Function一起使用。将put*USER作为值的XMSC.WMQ_SSL_KEY_REPOSITORY代替,*SYSTEM这应该可以在Azure Function上使用。