在Debian上配置Kafka的安全认证,通常涉及SSL加密和SASL认证两种主要方式。以下是详细的配置步骤:
openssl req -new -x509 -nodes -keyout ca.key -out ca.crt -days 3650 -subj "/C=CN/ST=GuangDong/L=GuangZhou/CN=Kafka Root CA"
keytool -keystore kafka.server.truststore.p12 -storetype PKCS12 -alias CARoot -import -file ca.crt -storepass truststore_password -noprompt
keytool -keystore kafka.server.keystore.p12 -storetype PKCS12 -alias localhost -validity 3650 -genkey -keyalg RSA -keysize 2048 -storepass keystore_password -dname "C=CN/ST=GuangDong/L=GuangZhou/CN=kafka-server"
keytool -keystore kafka.server.keystore.p12 -storetype PKCS12 -alias localhost -certreq -file server.csr -storepass keystore_password
openssl x509 -req -CA ca.crt -CAkey ca.key -in server.csr -out server-signed.crt -days 3650 -CAcreateserial -extfile <(printf "subjectAltName=IP:172.139.20.17,IP:172.139.20.81,IP:172.139.20.177")
keytool -keystore kafka.server.keystore.p12 -storetype PKCS12 -alias CARoot -import -file ca.crt -storepass truststore_password -noprompt
keytool -keystore kafka.server.keystore.p12 -storetype PKCS12 -alias localhost -import -file server-signed.crt -storepass keystore_password -noprompt
listeners=SSL://:9093
advertised.listeners=SSL://your_kafka_broker_ip:9093
ssl.keystore.location=/path/to/kafka.server.keystore.p12
ssl.keystore.password=keystore_password
ssl.key.password=keystore_password
ssl.truststore.location=/path/to/kafka.server.truststore.p12
ssl.truststore.password=truststore_password
在/etc/kafka/conf/kafka_server_jaas.conf
文件中配置JAAS,例如:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret";
};
在server.properties
文件中启用SASL_SSL并指定JAAS配置文件:
listeners=SASL_SSL://:9093
advertised.listeners=SASL_SSL://your_kafka_broker_ip:9093
security.inter.broker.protocol=SASL_SSL
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN,SCRAM-SHA-256
sasl.client.mechanism.list=PLAIN,SCRAM-SHA-256
在客户端的producer.properties
或consumer.properties
文件中配置SASL认证:
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.username=admin
sasl.password=admin-secret
以上步骤提供了在Debian系统上为Kafka配置SSL加密和SASL认证的基本流程。请根据实际环境和需求调整配置细节。