【问题标题】:How to verify if WebSphere MQ is using SSL?如何验证 WebSphere MQ 是否使用 SSL?
【发布时间】: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

【问题讨论】:

    标签: ssl ibm-mq


    【解决方案1】:

    是的!为了让 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 字段将包含一个非空白值。这称为相互身份验证。使用相互身份验证时,请务必使用 SSLPEERCHLAUTH 规则通过专有名称指定允许连接的证书。

    仅供参考 - 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]
    

    【讨论】:

    • 谢谢!非常有帮助。但是你从来没有给过我运行的命令;-)
    • @T.Rob,快速更新,SSLCIPH 和 SSLCAUTH 不在 DIS CHS 中,仅在 DIS CHL 中。
    • 谢谢,莫拉格。已更新。
    • 感谢您的详细解答。似乎合法。
    【解决方案2】:

    在 AIX 操作系统上这有效。

    命令:

    @:/mq/bin #echo "display chl(fooChannel) all" | runmqsc fooQueueManager| grep SSL
    

    命令输出:

       SHARECNV(100)                            SSLCAUTH(REQUIRED)
       SSLCIPH( )                              SSLPEER( )
    

    由于SSLCIPH 为空,因此 SSL 被禁用。

    【讨论】:

    • 请记住,这并不意味着正在运行的频道将匹配静态定义。如果在通道启动后更改了定义,则运行中的通道实例将不会更改以匹配它。我曾多次看到一个客户端通道具有数百个连接,其中一些子集是 SSL,而其余的则不是。如果进行了更改,请确保在进行更改后发出STOP CHL(...) STATUS(INACTIVE) 以强制停止正在运行的实例。在这种情况下,编码不佳的应用可能无法重新连接,需要自己重新启动。
    猜你喜欢
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 2011-05-29
    • 2012-09-10
    • 1970-01-01
    • 2017-04-13
    相关资源
    最近更新 更多