温馨提示×

Ubuntu Kafka如何配置安全认证

小樊
50
2025-05-14 17:32:30
栏目: 智能运维

在Ubuntu上配置Kafka的安全认证,通常涉及以下几个步骤:

1. 安装Kafka

首先,确保你已经安装了Kafka。你可以从Apache Kafka官方网站下载并按照安装指南进行安装。

2. 配置SSL/TLS

为了启用SSL/TLS加密通信,你需要配置Kafka服务器和客户端的SSL/TLS设置。

2.1 生成SSL证书和密钥

你可以使用OpenSSL生成自签名证书和密钥。

# 生成CA证书 openssl req -new -x509 -days 365 -keyout ca-key.pem -out ca-cert.pem -subj "/CN=kafka-ca" # 生成服务器证书和密钥 openssl req -newkey rsa:2048 -days 365 -nodes -keyout server-key.pem -out server-req.pem -subj "/CN=kafka-server" openssl x509 -req -in server-req.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -days 365 # 生成客户端证书和密钥 openssl req -newkey rsa:2048 -days 365 -nodes -keyout client-key.pem -out client-req.pem -subj "/CN=kafka-client" openssl x509 -req -in client-req.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -days 365 

2.2 配置Kafka服务器

编辑server.properties文件,添加以下配置:

listeners=SSL://:9093 ssl.keystore.location=/path/to/server-keystore.jks ssl.keystore.password=your_keystore_password ssl.key.password=your_key_password ssl.truststore.location=/path/to/server-truststore.jks ssl.truststore.password=your_truststore_password ssl.protocol=TLSv1.2 ssl.enabled.protocols=TLSv1.2 ssl.cipher.suites=TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384 

将生成的证书和密钥导入到Java KeyStore和TrustStore中:

# 创建服务器KeyStore keytool -importkeystore -srckeystore server-key.pem -srcstoretype PKCS12 -destkeystore server-keystore.jks -deststoretype JKS # 创建服务器TrustStore keytool -importkeystore -srckeystore server-cert.pem -srcstoretype PKCS12 -destkeystore server-truststore.jks -deststoretype JKS # 创建客户端KeyStore keytool -importkeystore -srckeystore client-key.pem -srcstoretype PKCS12 -destkeystore client-keystore.jks -deststoretype JKS # 创建客户端TrustStore keytool -importkeystore -srckeystore client-cert.pem -srcstoretype PKCS12 -destkeystore client-truststore.jks -deststoretype JKS 

2.3 配置Kafka客户端

编辑客户端配置文件(例如producer.propertiesconsumer.properties),添加以下配置:

security.protocol=SSL ssl.truststore.location=/path/to/client-truststore.jks ssl.truststore.password=your_truststore_password ssl.keystore.location=/path/to/client-keystore.jks ssl.keystore.password=your_keystore_password ssl.key.password=your_key_password 

3. 配置SASL认证

为了启用SASL认证,你需要配置Kafka服务器和客户端的SASL设置。

3.1 配置Kafka服务器

编辑server.properties文件,添加以下配置:

listeners=SASL_SSL://:9093 security.protocol=SASL_SSL sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \ username="admin" \ password="admin-secret"; 

3.2 配置Kafka客户端

编辑客户端配置文件(例如producer.propertiesconsumer.properties),添加以下配置:

security.protocol=SASL_SSL sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \ username="admin" \ password="admin-secret"; 

4. 重启Kafka服务器

完成上述配置后,重启Kafka服务器以应用更改。

sudo systemctl restart kafka 

5. 验证配置

使用Kafka命令行工具验证配置是否正确。例如,创建一个主题并生产一些消息:

kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9093 --partitions 1 --replication-factor 1 kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9093 --property security.protocol=SASL_SSL --property sasl.mechanism=PLAIN --property sasl.jaas.config="org.apache.kafka.common.security.plain.PlainLoginModule required username='admin' password='admin-secret';" 

然后消费消息:

kafka-console-consumer.sh --topic test-topic --bootstrap-server localhost:9093 --from-beginning --property security.protocol=SASL_SSL --property sasl.mechanism=PLAIN --property sasl.jaas.config="org.apache.kafka.common.security.plain.PlainLoginModule required username='admin' password='admin-secret';" 

通过以上步骤,你应该能够在Ubuntu上成功配置Kafka的安全认证。

0