使用 C# 连接到启用 SSL 的队列管理器时,需要设置哪些值才能使队列正常工作?
我目前收到此错误:
原因代码:2393
MQRC_SSL_INITIALIZATION_ERROR
在我的代码中,我设置 MQEnvironment.SSLKeyRepository 和 MQEnvironment.SSLCipherSpec
我还需要使用 C# 设置其他内容才能使其正常工作吗?我见过一些设置密钥库密码和类型之类的 Java 示例。
我也看到过设置系统环境变量的示例,但这似乎也没有任何区别。
调试 WMQ SSL 的一般模式如下...
- 让应用程序不使用 SSL 进行连接。这消除了连接、错误队列或队列管理器名称等问题。
- 让 SSL 与仅服务器身份验证一起使用。这意味着在 SVRCONN 通道上设置 SSLCAUTH(OPTIONAL)。 QMgr 将提供应用程序必须信任的证书,但应用程序不需要向服务器进行身份验证。这验证了应用程序和 QMgr 都可以访问其密钥库,并且 QMgr 的证书或 CA 链已正确加载到应用程序的密钥库中。
- 最后,在 SVRCONN 通道中设置 SSLCAUTH(REQUIRED),以便应用程序向 QMgr 进行身份验证。此时唯一可能的问题是 QMgr 不信任应用程序的证书或 CA。
如果连接尝试被 QMgr 拒绝,客户端的错误将故意隐藏起来。详细消息可以在 QMgr 的 AMQERR??.LOG 文件中找到。如果故障发生在客户端,这些消息将在客户端的错误日志中找到,或者您可以启用跟踪。
使用以下命令启用跟踪strmqtrc http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.amqzag.doc/fa16100_.htm命令并停止它endmqtrc http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.amqzag.doc/fa15810_.htm。 WMQ 客户端手册有一段 http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzaf.doc/cs12880_.htm描述客户端跟踪文件的结束位置以及另一节 http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.amqzag.doc/fa15280_.htm专门用于一般 Windows 上的跟踪。这对于确定客户端配置问题(例如找不到私钥、找不到密钥库等)非常有用。
在您的情况下,2393 表示客户端配置中的某些内容出现故障。由于您不再收到密钥库密码的错误,我猜测可能是在查找私钥时遇到问题或不信任 QMgr 提供的证书。在第一种情况下,设置 SSLCAUTH(OPTIONAL) 将起作用,因为客户端不需要它的私钥。但是,如果问题在于信任 QMgr 或其他配置问题,SSLCAUTH(OPTIONAL) 将无济于事,但跟踪应该解决这个问题。
顺便说一句,由于需要在客户端进行跟踪和诊断,因此 IBM 不支持复制 jar 或 lib 的客户端安装,而不是运行完整的客户端安装。尽管您可以通过复制一些 lib 文件和类来让客户端运行,但这并不能提供用于跟踪和诊断的所有功能。如果您尚未执行完整的客户端安装,我在此描述的某些内容将无法实现。如果是这种情况,请从以下位置下载并安装客户端:支持Pac MQC7 http://bit.ly/SupportPacMQC7.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)