第 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 中
在
INSTALL_DIR/etc/activemq.xml文件中定义 SSL 上下文:<sslContext> <sslContext keyStore="file:${activemq.conf}/broker.ks" keyStorePassword="password"/> </sslContext>在代理配置文件中,创建一个传输连接器,以接受来自 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 参数。