5.9. 在配置文件中加密密码


默认情况下,AMQ Broker 将所有密码以纯文本形式存储在配置文件中。务必保护所有具有正确权限的配置文件,以防止未经授权的访问。您还可以加密或 掩码 纯文本密码,以防止不需要的查看者读取它们。

5.9.1. 关于加密密码

加密或 屏蔽 的、密码是纯文本密码的加密版本。加密的版本由 AMQ Broker 提供的 mask 命令行工具生成。有关 mask 工具的更多信息,请参阅命令行帮助文档:

$ <broker_instance_dir>/bin/artemis help mask
Copy to Clipboard Toggle word wrap

要屏蔽密码,请将其纯文本值替换为加密的值。屏蔽的密码必须用标识符 ENC () 嵌套,以便在需要实际值时对其进行解密。

在以下示例中,配置文件 < broker_instance_dir>/etc/bootstrap.xml 包含 keyStorePasswordtrustStorePassword 参数的屏蔽密码。

<web bind="https://localhost:8443" path="web"
     keyStorePassword="ENC(-342e71445830a32f95220e791dd51e82)"
     trustStorePassword="ENC(32f94e9a68c45d89d962ee7dc68cb9d1)">
    <app url="activemq-branding" war="activemq-branding.war"/>
</web>
Copy to Clipboard Toggle word wrap

您可以在以下配置文件中使用屏蔽的密码。

  • broker.xml
  • bootstrap.xml
  • management.xml
  • artemis-users.properties
  • login.config (用于 LDAPLoginModule

配置文件位于 < broker_instance_dir> /etc

注意

artemis-users.properties 仅支持已屏蔽的密码。在创建代理时创建用户时,artemis-users.properties 默认包含哈希密码。默认 PropertiesLoginModule 不会解码 artemis-users.properties 文件中的密码,而是哈希输入并比较密码验证的两个散列值。将哈希密码改为屏蔽的密码不允许访问 AMQ Broker 管理控制台。

broker.xmlbootstrap.xmlmanagement.xmllogin.config 支持屏蔽但未哈希的密码。

5.9.2. 在配置文件中加密密码

以下示例演示了如何在 broker.xml 配置文件中屏蔽 cluster-password 的值。

流程

  1. 在命令提示符中,使用 mask 工具加密密码:

    $ <broker_instance_dir>/bin/artemis mask <password>
    Copy to Clipboard Toggle word wrap
    result: 3a34fd21b82bf2a822fa49a8d8fa115d
    Copy to Clipboard Toggle word wrap
  2. 打开 & lt;broker_instance_dir> /etc/broker.xml 配置文件,其中包含您要屏蔽的纯文本密码:

    <cluster-password>
      <password>
    </cluster-password>
    Copy to Clipboard Toggle word wrap
  3. 将纯文本密码替换为加密值:

    <cluster-password>
      3a34fd21b82bf2a822fa49a8d8fa115d
    </cluster-password>
    Copy to Clipboard Toggle word wrap
  4. 使用标识符 ENC () 嵌套加密值:

    <cluster-password>
      ENC(3a34fd21b82bf2a822fa49a8d8fa115d)
    </cluster-password>
    Copy to Clipboard Toggle word wrap

配置文件现在包含加密的密码。由于密码附带 ENC () 标识符,所以 AMQ Broker 在使用前会对其进行解密。

其他资源

5.9.3. 设置 codec 密钥以加密和解密密码

需要使用 codec 来加密和解密密码。如果没有配置自定义 codec,则 mask 工具使用默认的 codec 来加密密码,AMQ Broker 使用相同的默认 codec 来解密密码。codec 使用默认密钥进行配置,它提供给底层加密算法来加密和解密密码。使用默认密钥可能会带来一个恶意的攻击者可能会使用的风险来解密您的密码。

当使用 mask 实用程序加密密码时,您可以指定自己的密钥字符串以避免使用默认的 codec 密钥。然后,您必须在 ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY 环境变量中设置相同的密钥字符串,以便代理可以解密密码。在环境变量中设置密钥使其更安全,因为它不会在配置文件中保留。另外,您可以在启动代理前立即设置密钥,并在代理启动后立即取消设置它。

流程

  1. 使用 mask 实用程序加密配置文件中的每个密码。对于 key 参数,指定用于加密密码的字符串。使用相同的密钥字符串来加密每个密码。

    $ <broker_instance_dir>/bin/artemis mask --key <key> <password>
    Copy to Clipboard Toggle word wrap
    警告

    确保您保留在运行 mask 实用程序以加密密码时指定的密钥字符串记录。您必须在环境变量中配置相同的键值,以允许代理解密密码。

    有关在配置文件中加密密码的详情,请参考 第 5.9.2 节 “在配置文件中加密密码”

  2. 在命令提示符中,将 ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY 环境变量设置为您在加密每个密码时指定的密钥字符串。

    $ export ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY= <key>
    Copy to Clipboard Toggle word wrap
  3. 启动代理。

    $ ./artemis run
    Copy to Clipboard Toggle word wrap
  4. 取消设置 ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY 环境变量。

    $ unset ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY
    Copy to Clipboard Toggle word wrap
    注意

    如果在启动代理后取消设置 ARTEMIS_DEFAULT_SENSITIVE_STRING_CODEC_KEY 环境变量,您必须在每次后续时间启动代理前再次将其设置为相同的密钥字符串。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat