Kafka在Debian上的安全认证配置主要包括SSL/TLS加密和SASL认证,步骤如下:
生成证书和密钥库
使用keytool
生成服务器证书和信任库(需先安装Java):
keytool -genkeypair -alias kafka -keyalg RSA -keystore kafka.server.keystore.jks -validity 3650 -storepass 123456
keytool -export -alias kafka -file kafka.server.crt -keystore kafka.server.keystore.jks
keytool -import -alias kafka -file kafka.server.crt -keystore kafka.server.truststore.jks -storepass 123456
(若需客户端证书,重复上述步骤生成客户端密钥库)
配置Kafka服务器
编辑/etc/kafka/server.properties
:
listeners=SSL://:9093
security.inter.broker.protocol=SSL
ssl.keystore.location=/path/to/kafka.server.keystore.jks
ssl.keystore.password=123456
ssl.truststore.location=/path/to/kafka.server.truststore.jks
ssl.truststore.password=123456
ssl.enabled.protocols=TLSv1.2,TLSv1.3
(若启用双向认证,需配置ssl.client.auth=required
)
配置Kafka客户端
客户端需指定信任库路径和密码:
security.protocol=SSL
ssl.truststore.location=/path/to/kafka.server.truststore.jks
ssl.truststore.password=123456
创建JAAS配置文件
在/etc/kafka/
下创建kafka_server_jaas.conf
,例如使用PLAIN机制:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret";
};
(若需SCRAM机制,替换为ScramLoginModule
并配置用户名密码)
启用SASL认证
修改server.properties
:
listeners=SASL_SSL://:9093 # 或SASL_PLAINTEXT
security.inter.broker.protocol=SASL_SSL
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
sasl.jaas.config=/etc/kafka/kafka_server_jaas.conf
(客户端需在配置中指定相同的机制和凭据)
客户端配置示例
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret";
sudo ufw allow 9093/tcp
sudo systemctl restart kafka
kafka-console-producer --broker-list localhost:9093 --topic test --producer.config client.properties
注意:生产环境中需使用有效证书、强密码,并定期轮换密钥。详细配置可参考Kafka官方文档。