ubuntu

Ubuntu Kafka如何配置安全认证

小樊
34
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
看了该问题的人还看了