Я пытаюсь настроить брокера Kafka с поддержкой SSL, но когда я пытаюсь поместить сообщение в тему, оно идет по таймауту.
Вот шаги, за которыми я следовал:
openssl req -new -newkey rsa:4096 -days 365 -x509 -subj "/CN=Kafka-Security-CA" -keyout ca-key -out ca-cert -nodes
keytool -genkey -keystore kafka.server.keystore.jks -validity 365 -storepass xxx-keypass xxx -dname "CN=kafka_broker.net" -storetype pkcs12
keytool -keystore kafka.server.keystore.jks -certreq -file cert-file -storepass xxx -keypass xxx
openssl x509 -req -CA ca-cert -CAkey ca-key -in cert-file -out cert-signed -days 365 -CAcreateserial -passin pass:xxx
keytool -keystore kafka.server.truststore.jks -alias CARoot -import -file ca-cert -storepass xxx -keypass xxx -noprompt
keytool -keystore kafka.server.keystore.jks -import -file cert-signed -storepass xxx -keypass xxx -noprompt
keytool -keystore kafka.client.truststore.jks -alias CARoot -import -file ca-cert -storepass xxx -keypass xxx -noprompt
Я знаю, что соединение через SSL не удалось, потому что я делаю:
/kafka_2.11-1.1.0/bin/kafka-console-producer.sh --broker-list kafka_broker:9092 --topic test --producer.config client.properties
>ewqeq
[2018-07-04 14:53:18,022] ERROR Error when sending message to topic test with key: null, value: 5 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.
где client.properties - это файл конфигурации и его содержимое:
security.protocol=SSL
ssl.truststore.location=./kafka.server.truststore.jks
ssl.truststore.password=xxx
Я пробовал много раз, но ничего не работает.
Клиент, к которому я пытаюсь подключиться, находится в Docker-контейнере и также является kafka. Они находятся в одной сети, и имя хоста kafka - kafka_broker, которое я также предоставил CN при создании хранилища ключей.