4.9.2. TLS 加密


Kafka 支持使用 TLS 加密与 Kafka 客户端的通信。

要使用 TLS 加密和服务器身份验证,必须提供含有私钥和公钥的密钥存储。这通常使用 Java 密钥存储(JKS)格式的文件完成。在 ssl.keystore.location 属性中设置该文件的路径。ssl.keystore.password 属性应该用来设置保护密钥存储的密码。例如:

ssl.keystore.location=/path/to/keystore/server-1.jks
ssl.keystore.password=123456

在某些情况下,使用额外的密码来保护私钥。任何此类密码都可以使用 ssl.key.password 属性设置。

Kafka 可以使用证书颁发机构签名的密钥以及自签名证书。使用证书颁发机构签名的密钥应始终是首选方法。为了允许客户端验证要连接到的 Kafka 代理的身份,证书应始终包含公告的主机名作为其通用名称(CN)或在 Subject alternatives Names(SAN)中。

可以将不同的 SSL 配置用于不同的侦听器。以 ssl. 开始的所有选项都可以带有 listener.name.<NameOfTheListener>. 前缀,其中监听器的名称必须始终为小写。这将覆盖该特定侦听器的默认 SSL 配置。以下示例演示了如何在不同的侦听器中使用不同的 SSL 配置:

listeners=INT1://:9092,INT2://:9093,REPLICATION://:9094
listener.security.protocol.map=INT1:SSL,INT2:SSL,REPLICATION:SSL

# Default configuration - will be used for listeners INT1 and INT2
ssl.keystore.location=/path/to/keystore/server-1.jks
ssl.keystore.password=123456

# Different configuration for listener REPLICATION
listener.name.replication.ssl.keystore.location=/path/to/keystore/server-1.jks
listener.name.replication.ssl.keystore.password=123456

其他 TLS 配置选项

除了上述主要 TLS 配置选项外,Kafka 还支持许多选项来微调 TLS 配置。例如,启用或禁用 TLS / SSL 协议或密码套件:

ssl.cipher.suites
启用的密码套件列表。每个密码套件都是用于 TLS 连接的身份验证、加密、MAC 和密钥交换算法的组合。默认情况下,所有可用的密码套件都是启用的。
ssl.enabled.protocols
启用的 TLS/SSL 协议列表.默认值为 TLSv1.2,TLSv1.1,TLSv1

有关支持 Kafka 代理配置选项的完整列表,请参阅 附录 A, 代理配置参数

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.