[MQ 9.3.0 2022 年 6 月]

MQTT TLS 通道的口令进行加密

您可以使用 MQXR 服务 STARTARG 选项 -sf-sp,对 MQTT TLS 通道的口令进行加密。

关于本任务

-sf 选项提供用于加密 MQTT TLS 通道口令的凭证密钥文件。 请注意,方便起见提供了缺省密钥。

-sp 选项指定保护方式。 缺省值为 2 ,以使用更安全的凭证保护方法。 请参阅 在 Linux上手动定义 MQXR 服务在 Windows 上手动定义 MQXR 服务 以获取更多信息,具体取决于企业使用的操作系统。

创建或更改通道时,将使用针对 -sf 选项提供的凭证密钥文件对口令进行加密。 已加密的口令存储在特定于平台的属性文件 mqxr_win.propertiesmqxr_unix.properties 中。

特定于平台的属性文件中存储的加密口令示例:
com.ibm.mq.MQXR.channel.SSL.PassPhrase=<MQXR>2!kvAzYv/1aCMfSQ5igkFVmQ==
!f4rX5KL7aFKHJl7Ln0X+OQ==
使用缺省密钥对口令进行加密的示例:
STARTARG('-m +QMNAME+ -d "+MQ_Q_MGR_DATA_PATH+" -g "+MQ_DATA_PATH+" 
-sf "[DEFAULT]"')
其中,DEFAULT 表示用于加密口令的缺省密钥。
注意: DEFAULT 字必须用方括号括起来,即 [DEFAULT]
使用 keyfile.txt 中用户定义的密钥对口令进行加密的示例:
STARTARG('-m +QMNAME+ -d "+MQ_Q_MGR_DATA_PATH+" -g "+MQ_DATA_PATH+" 
-sf "c:\pathOfKeyfile\keyfile.txt"')

Linux® 上创建 SYSTEM.MQXR.SERVICEWindows 上创建 SYSTEM.MQXR.SERVICE 将进行更新,以指定用于加密 MQTT TLS 通道的缺省密钥。

您还可以通过执行一系列步骤来定义 MQXR 服务。 有关更多信息,请参阅 在 Windows 上手动定义 MQXR 服务在 Linux上手动定义 MQXR 服务

如果要更改用于加密口令的凭证密钥文件,请执行以下过程。

过程

  1. 确保您知道每个 MQTT TLS 通道的口令。
  2. 停止 MQXR 服务 SYSTEM.MQXR.SERVICE。
  3. 改变 MQXR 服务 SYSTEM.MQXR.SERVICE ,用于添加 STARTARG 选项 -sf 并提供要用于加密的凭证密钥文件。
    例如,要使用 DEFAULT 密钥对口令进行加密,请发出以下命令:
    STARTARG('-m +QMNAME+ -d "+MQ_Q_MGR_DATA_PATH+" -g "+MQ_DATA_PATH+" 
    -sf "[DEFAULT]"')
    同样,要使用 keyfile.txt 中用户定义的密钥加密口令,请发出以下命令:
    STARTARG('-m +QMNAME+ -d "+MQ_Q_MGR_DATA_PATH+" -g "+MQ_DATA_PATH+" 
    -sf "c:\pathToKeyfile\keyfile.txt"')
  4. 启动 MQXR 服务 SYSTEM.MQXR.SERVICE。
  5. 更改 TLS 通道口令

    通过 IBM MQ Explorer 或者使用 MQSC ALTER CHANNEL (MQTT) 命令来执行此操作。

    使用步骤 3 中的 -sf 选项提供的凭证密钥文件对口令进行加密

  6. 启动通道以使用新的加密口令。
    备注信息:
    • 在上述步骤中,如果在重新启动服务后不改变通道,那么使用纯文本口令的通道将无法启动。 记录错误以指示需要更新口令。
    • 如果要关闭加密,请执行相同的过程,但在步骤 3 中,请启动 MQXR 服务而不指定 -sf 选项。

    有关此过程的迁移,请参阅将纯文本口令迁移到加密口令

    注意: MQXR 仍支持纯文本口令,但您应该加密企业中的所有 MQTT TLS 通道口令。