ubuntu

Ubuntu Kafka配置中如何启用SSL

小樊
44
2025-06-22 04:35:52
栏目: 云计算

在Ubuntu上配置Kafka以启用SSL涉及几个步骤,包括生成SSL证书、配置Kafka服务器和客户端。以下是一个详细的指南:

1. 生成SSL证书

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

生成CA证书

mkdir kafka_ssl
cd kafka_ssl
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. 配置Kafka服务器

编辑Kafka服务器配置文件server.properties,通常位于/etc/kafka/server.properties

# 启用SSL
listeners=SSL://:9093
advertised.listeners=SSL://your_server_hostname:9093

# SSL配置
ssl.keystore.location=/path/to/kafka_ssl/server-keystore.jks
ssl.keystore.password=your_keystore_password
ssl.key.password=your_key_password
ssl.truststore.location=/path/to/kafka_ssl/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
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
    username="admin" \
    password="admin-secret";

3. 创建Java KeyStore和TrustStore

将生成的证书导入到Java KeyStore和TrustStore中。

创建KeyStore

keytool -import -alias kafka-server -file /path/to/kafka_ssl/server-cert.pem -keystore /path/to/kafka_ssl/server-keystore.jks -storepass your_keystore_password

创建TrustStore

keytool -import -alias kafka-ca -file /path/to/kafka_ssl/ca-cert.pem -keystore /path/to/kafka_ssl/server-truststore.jks -storepass your_truststore_password

4. 配置Kafka客户端

编辑Kafka客户端配置文件client.properties,通常位于/etc/kafka/client.properties

# 启用SSL
security.protocol=SSL
ssl.truststore.location=/path/to/kafka_ssl/client-truststore.jks
ssl.truststore.password=your_truststore_password
ssl.keystore.location=/path/to/kafka_ssl/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="admin" \
    password="admin-secret";

5. 重启Kafka服务器

最后,重启Kafka服务器以应用新的配置。

sudo systemctl restart kafka

验证SSL连接

你可以使用kafkacat或其他Kafka客户端工具来验证SSL连接。

kafkacat -b your_server_hostname:9093 -L -v

通过以上步骤,你应该能够在Ubuntu上成功配置Kafka以启用SSL。

0
看了该问题的人还看了