第 6 章 安全性

AMQ Broker 7 提供了传输层安全性,以保护传入网络连接的安全,并授权根据各自地址来保护对队列的访问。在这两个方面,安全模型与 AMQ 6 非常相似。但是,配置流程是不同的。

6.1. 如何配置传输层安全性

与 AMQ 6 一样,AMQ Broker 7 允许您使用 SSL/TLS 保护传入网络连接的安全。但是,配置语法和配置属性有一些区别。

在 AMQ 6 中,通过创建 SSL 上下文来定义密钥存储和信任存储,然后将 SSL 属性添加到您要保护的每个传输连接器中,从而配置传输层安全性。

在 AMQ Broker 7 中,传输层基于 Netty,它原生使用 SSL。这意味着,要配置传输层安全性,您只需为每个要保护的接收器添加必要的 SSL 属性。您不需要添加单独的 SSL 上下文。

例如,以下配置接受来自 OpenWire 客户端的安全连接:

在 AMQ 6 中

  1. INSTALL_DIR/etc/activemq.xml 文件中定义 SSL 上下文:

    <sslContext>
        <sslContext keyStore="file:${activemq.conf}/broker.ks" keyStorePassword="password"/>
    </sslContext>
  2. 在代理配置文件中,创建一个传输连接器,以接受来自 OpenWire 客户端的安全连接:

    <transportConnector name="ssl" uri="ssl://localhost:61617?transport.needClientAuth=true"/>

在 AMQ Broker 7 中

  • BROKER_INSTANCE_DIR/etc/broker.xml 配置文件中创建或更新接收器以接受来自 OpenWire 客户端的安全连接:

    <acceptor name="netty-ssl-acceptor">tcp://localhost:61617?sslEnabled=true;keyStorePath=${data.dir}/../etc/broker.ks;keyStorePassword=password;needClientAuth=true</acceptor>

您可以配置单向或双向 TLS。下表描述了这些方法:

方法描述

单向 TLS

只有代理才会显示证书。此方法要求您拥有用于服务器端证书的 Java KeyStore。

如需更多信息, 请参阅配置 AMQ Broker 中的保护连接

双向 TLS(永久身份验证)

代理和客户端都存在证书。此方法要求您拥有用于服务器端证书的 Java KeyStore,以及存放代理信任的客户端密钥的 TrustStore。

如需更多信息, 请参阅配置 AMQ Broker 中的保护连接

注意

要重复使用 AMQ Broker 7 的现有密钥存储和信任存储,请将它们复制到 AMQ Broker 7 代理实例。

相关信息

  • 有关所有传输层安全配置属性的完整列表,请参阅 配置 AMQ Broker 中的 Netty TLS 参数