【发布时间】:2015-09-09 10:18:26
【问题描述】:
如果 WebSphere MQ 正在使用 SSL,是否有要运行的命令、要检查的配置文件或在 IBM WepSphere MQ Explorer 中直观检查的方法?
WebSphere MQ 版本:
user@server:/ #dspmqver
Name: WebSphere MQ
Version: 7.0.1.5
【问题讨论】:
如果 WebSphere MQ 正在使用 SSL,是否有要运行的命令、要检查的配置文件或在 IBM WepSphere MQ Explorer 中直观检查的方法?
WebSphere MQ 版本:
user@server:/ #dspmqver
Name: WebSphere MQ
Version: 7.0.1.5
【问题讨论】:
是的!为了让 QMgr 使用 SSL,通道必须指定 SSLCIPH 的值。如果通道在SSLCIPH 中指定了某些内容,则通道将不会在没有 SSL 的情况下运行。只需显示通道定义并查看SSLCIPH 字段。如果它不是空白并且通道正在运行,则它正在使用 SSL。
(注意:MQ 确实使用 TLS。它从未使用过 SSL。它一直使用 TLS,但允许 SSL 密码在 TLS 下运行。)
但是,这并不意味着任何其他渠道都在使用 SSL。任何没有SSLCIPH 值的通道都将在没有 SSL 的情况下运行,即使一个或多个通道确实指定了一个值。由于 MQ 监听器是混杂的,远程 QMgr 或应用程序可以请求启动任何通道。
因此,当启用 QMgr 以使用 SSL 时,有必要确保 所有 通道使用 SSL 或使用 CHLAUTH 规则以确保非 SSL 通道t 由预期使用 SSL 的远程节点启动。
如果 SSL 通道还指定 SSLCAUTH(REQUIRED)(这是默认值),则客户端或远程 QMgr 将需要提供证书以供本地 QMgr 验证。在这种情况下,如果您显示通道状态,Peer Name 字段将包含一个非空白值。这称为相互身份验证。使用相互身份验证时,请务必使用 SSLPEER 或 CHLAUTH 规则通过专有名称指定允许连接的证书。
仅供参考 - 2015 年 9 月版本 7.0.1 of MQ is going out of support。
每个 cmets 的更新
要查看通道属性或状态,请使用 WMQ Explorer 或 runmqsc 命令。 runmqsc 命令可以以交互方式或在脚本中使用。要以交互方式运行它,只需键入runmqsc [qmgr name],然后输入您想要的命令。在这种情况下,它们将是DIS CHL([channel name]) SSLCIPH SSLCAUTH 用于通道定义或DIS CHS([channel name]) SSLCIPH SSLCAUTH 用于通道状态。
(在[channel name] 处替换实际频道名称。)
要在脚本中执行相同的操作,请尝试以下操作:
echo DIS CHL([channel name]) SSLCIPH SSLCAUTH | runmqsc [qmgr name]
echo DIS CHS([channel name]) ALL | runmqsc [qmgr name]
在非 Windows 系统上,由于 shell 特殊字符,您需要引用参数:
echo "DIS CHL([channel name]) SSLCIPH SSLCAUTH" | runmqsc [qmgr name]
echo "DIS CHS([channel name]) ALL " | runmqsc [qmgr name]
【讨论】:
在 AIX 操作系统上这有效。
命令:
@:/mq/bin #echo "display chl(fooChannel) all" | runmqsc fooQueueManager| grep SSL
命令输出:
SHARECNV(100) SSLCAUTH(REQUIRED)
SSLCIPH( ) SSLPEER( )
由于SSLCIPH 为空,因此 SSL 被禁用。
【讨论】:
STOP CHL(...) STATUS(INACTIVE) 以强制停止正在运行的实例。在这种情况下,编码不佳的应用可能无法重新连接,需要自己重新启动。