温馨提示×

Ubuntu Kafka如何配置SSL加密

小樊
43
2025-03-25 10:31:25
栏目: 云计算

在Ubuntu上配置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,通常位于/etc/kafka/server.properties

# 启用SSL
listeners=SSL://:9093
advertised.listeners=SSL://your_server_hostname: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

# 启用SSL协议
ssl.enabled.protocols=TLSv1.2,TLSv1.3

# 启用SSL密码套件
ssl.cipher.suites=TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384

3. 配置Kafka客户端

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

# 启用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

# 启用SSL协议
ssl.enabled.protocols=TLSv1.2,TLSv1.3

# 启用SSL密码套件
ssl.cipher.suites=TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384

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

启动Kafka服务器:

sudo systemctl start kafka

启动Kafka客户端(例如,使用kafkacat):

kafkacat -b your_server_hostname:9093 -t your_topic -Z SSL -C /path/to/kafka-ssl-client/client-truststore.jks -K /path/to/kafka-ssl-client/client-keystore.jks

5. 验证SSL连接

你可以使用openssl s_client命令来验证SSL连接:

openssl s_client -connect your_server_hostname:9093 -CAfile /path/to/kafka-ssl-ca/ca-cert.pem

通过以上步骤,你应该能够在Ubuntu上成功配置Kafka以使用SSL加密。确保所有路径和密码都正确无误,并且在配置文件中进行适当的调整。

0