在Debian系統上配置Apache Kafka以使用SSL涉及幾個步驟,包括生成SSL證書和密鑰、配置Kafka服務器以及配置Kafka客戶端。以下是一個基本的指南:
首先,你需要生成SSL證書和密鑰。你可以使用OpenSSL來完成這個任務。
keytool -genkey -alias kafka-server -keyalg RSA -keystore kafka.server.keystore.jks -storepass password -validity 365 -keysize 2048
keytool -certreq -alias kafka-server -file kafka.server.csr -keystore kafka.server.keystore.jks -storepass password
假設你有一個CA證書和密鑰,你可以使用它們來簽發Kafka服務器的證書。
keytool -x509 -alias kafka-server -file kafka.server.crt -keystore kafka.server.keystore.jks -storepass password -ext SAN=dns:kafka.example.com -validity 365
編輯Kafka服務器的配置文件server.properties
,通常位于/etc/kafka/server.properties
。
listeners=SSL://:9093
ssl.keystore.location=/etc/kafka/kafka.server.keystore.jks
ssl.keystore.password=password
ssl.key.password=password
ssl.truststore.location=/etc/kafka/kafka.server.truststore.jks
ssl.truststore.password=password
ssl.enabled.protocols=TLSv1.2
ssl.cipher.suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
ssl.protocol=ECDHE_RSA
編輯Kafka客戶端的配置文件client.properties
,通常位于/etc/kafka/client.properties
。
security.protocol=SSL
ssl.truststore.location=/etc/kafka/kafka.client.truststore.jks
ssl.truststore.password=password
ssl.keystore.location=/etc/kafka/kafka.client.keystore.jks
ssl.keystore.password=password
ssl.enabled.protocols=TLSv1.2
ssl.cipher.suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
ssl.protocol=ECDHE_RSA
完成配置后,重啟Kafka服務器以應用更改。
sudo systemctl restart kafka
你可以使用kafkacat
或其他Kafka客戶端工具來驗證SSL連接。
kafkacat -b localhost:9093 -L -t test_topic -Z
如果一切配置正確,你應該能夠看到Kafka集群的詳細信息。
通過以上步驟,你應該能夠在Debian系統上成功配置Apache Kafka以使用SSL。