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官方文档。