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, 代理配置参数。