在Debian系统上配置Kafka以使用SSL涉及几个步骤,包括生成SSL证书和密钥、配置Kafka服务器以及配置Kafka客户端。以下是详细的步骤:
首先,你需要生成SSL证书和密钥。你可以使用OpenSSL来完成这个任务。
# 生成密钥
keytool -genkey -alias kafka-server -keyalg RSA -keystore kafka.server.keystore.jks -storepass password -validity 365 -keysize 2048
# 生成证书签名请求(CSR)
keytool -certreq -alias kafka-server -file kafka.server.csr -keystore kafka.server.keystore.jks -storepass password
# 使用CA签发证书(如果你有CA证书和密钥)
keytool -x509 -alias kafka-server -file kafka.server.crt -keystore kafka.server.keystore.jks -storepass password -ext SAN=dns:kafka.example.com -validity 365
编辑Kafka服务器的配置文件server.properties,通常位于/etc/kafka/目录下。
# 启用SSL
listeners=SSL://:9093
ssl.keystore.location=/etc/kafka/kafka.server.keystore.jks
ssl.keystore.password=password
ssl.key.password=password
ssl.truststore.location=/etc/kafka/kafka.server.truststore.jks
ssl.truststore.password=password
# 其他SSL相关配置
ssl.enabled.protocols=TLSv1.2
ssl.cipher.suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
ssl.protocol=ECDHE_RSA
编辑Kafka客户端的配置文件client.properties,通常位于/etc/kafka/目录下。
# 启用SSL
security.protocol=SSL
ssl.truststore.location=/etc/kafka/kafka.client.truststore.jks
ssl.truststore.password=password
ssl.keystore.location=/etc/kafka/kafka.client.keystore.jks
ssl.keystore.password=password
ssl.enabled.protocols=TLSv1.2
ssl.protocol=ECDHE_RSA
如果你还需要配置SASL认证,可以按照以下步骤进行:
创建JAAS配置文件:例如,创建/etc/kafka/kafka_server_jaas.conf文件,内容如下:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_admin="/home/admin";
}
修改Kafka配置文件:在server.properties中添加以下配置:
listeners=SASL_SSL://:9093
security.inter.broker.protocol=SASL_SSL
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_admin="/home/admin";
重启服务:重启Kafka服务以应用配置更改。
sudo systemctl restart kafka
你可以使用kafkacat或其他Kafka客户端工具来验证SSL连接。
kafkacat -b localhost:9093 -L -t test_topic -Z
如果一切配置正确,你应该能够看到Kafka集群的详细信息。
以上步骤涵盖了在Debian系统上配置Kafka的安全认证,包括SSL/TLS和SASL。确保在生产环境中使用有效的证书和强密码,并根据需要调整配置。