linux

Kafka Linux版如何配置SSL

小樊
40
2025-09-03 08:45:28
栏目: 云计算

在Linux上配置Kafka以使用SSL涉及几个步骤,包括生成SSL证书和密钥、配置Kafka服务器和客户端。以下是一个基本的指南:

1. 生成SSL证书和密钥

首先,你需要生成SSL证书和密钥。你可以使用OpenSSL来完成这个任务。

生成CA证书和密钥

# 创建CA目录
mkdir kafka-ssl-ca
cd kafka-ssl-ca

# 生成CA私钥
openssl genrsa -out ca-key.pem 2048

# 生成CA证书
openssl req -new -x509 -days 3650 -key ca-key.pem -out ca-cert.pem -subj "/C=US/ST=State/L=City/O=Organization/CN=KafkaSSLCA"

生成服务器证书和密钥

# 创建服务器证书目录
mkdir kafka-ssl-server
cd kafka-ssl-server

# 生成服务器私钥
openssl genrsa -out server-key.pem 2048

# 生成服务器证书签名请求(CSR)
openssl req -new -key server-key.pem -out server-csr.pem -subj "/C=US/ST=State/L=City/O=Organization/CN=kafka-server"

# 使用CA证书签名服务器CSR
openssl x509 -req -in server-csr.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -days 365

生成客户端证书和密钥

# 创建客户端证书目录
mkdir kafka-ssl-client
cd kafka-ssl-client

# 生成客户端私钥
openssl genrsa -out client-key.pem 2048

# 生成客户端证书签名请求(CSR)
openssl req -new -key client-key.pem -out client-csr.pem -subj "/C=US/ST=State/L=City/O=Organization/CN=kafka-client"

# 使用CA证书签名客户端CSR
openssl x509 -req -in client-csr.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -days 365

2. 配置Kafka服务器

编辑Kafka服务器的配置文件server.properties,通常位于$KAFKA_HOME/config目录下。

# 启用SSL
listeners=SSL://:9093
advertised.listeners=SSL://your.host.name:9093

# SSL配置
ssl.keystore.location=/path/to/kafka-ssl-server/server-keystore.jks
ssl.keystore.password=your_keystore_password
ssl.key.password=your_key_password
ssl.truststore.location=/path/to/kafka-ssl-server/server-truststore.jks
ssl.truststore.password=your_truststore_password

# 启用SASL_SSL
sasl.enabled.mechanisms=PLAIN
security.inter.broker.protocol=SASL_SSL
sasl.mechanism.inter.broker.protocol=PLAIN

3. 配置Kafka客户端

编辑Kafka客户端的配置文件client.properties,通常位于$KAFKA_HOME/config目录下。

# 启用SSL
security.protocol=SSL

# SSL配置
ssl.truststore.location=/path/to/kafka-ssl-client/client-truststore.jks
ssl.truststore.password=your_truststore_password
ssl.keystore.location=/path/to/kafka-ssl-client/client-keystore.jks
ssl.keystore.password=your_keystore_password

# SASL配置
sasl.mechanism=PLAIN
security.protocol=SASL_SSL
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
    username="your_username" \
    password="your_password";

4. 启动Kafka服务器和客户端

启动Kafka服务器:

$KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties

启动Kafka客户端:

$KAFKA_HOME/bin/kafka-console-producer.sh --broker-list your.host.name:9093 --topic your_topic --property security.protocol=SSL --property ssl.truststore.location=/path/to/kafka-ssl-client/client-truststore.jks --property ssl.truststore.password=your_truststore_password --property ssl.keystore.location=/path/to/kafka-ssl-client/client-keystore.jks --property ssl.keystore.password=your_keystore_password

启动Kafka消费者:

$KAFKA_HOME/bin/kafka-console-consumer.sh --bootstrap-server your.host.name:9093 --topic your_topic --property security.protocol=SSL --property ssl.truststore.location=/path/to/kafka-ssl-client/client-truststore.jks --property ssl.truststore.password=your_truststore_password --property ssl.keystore.location=/path/to/kafka-ssl-client/client-keystore.jks --property ssl.keystore.password=your_keystore_password

通过以上步骤,你应该能够在Linux上成功配置Kafka以使用SSL。请根据你的具体需求调整配置文件中的路径和密码。

0
看了该问题的人还看了