Конфигурация SSL реестра реестров схемы - PullRequest
0 голосов
/ 20 февраля 2020

Я новичок в поле kafka.

У меня есть реестр kafka, zookeeper и schema, все установлены на машине RHEL7 (имя хоста: kafka-confluent), это не настройка кластера, поэтому есть только 1 брокер.

Теперь я хотел бы настроить шифрование SSL для моей установки. Я создал ключи и сертификат ssl в соответствии с документами .

Затем я настроил файлы свойств.

My (каталог установки платформы) /etc/kafka/server.properties:

ssl.truststore.location=/home/kafka/kafka.server.truststore.jks
ssl.truststore.password=password
ssl.keystore.location=/home/kafka/kafka.server.keystore.jks
ssl.keystore.password=password
ssl.key.password=password
security.inter.broker.protocol=SSL
ssl.client.auth=required
listeners=PLAINTEXT://:9092,SSL://:9093

My (каталог установки платформы) /etc/schema-registry/schema-registry.properties:

listeners=http://0.0.0.0:8081,https://0.0.0.0:8082
ssl.truststore.location=/home/kafka/kafka.server.truststore.jks
ssl.truststore.password=password
ssl.keystore.location=/home/kafka/kafka.server.keystore.jks
ssl.keystore.password=password
ssl.key.password=password
ssl.client.auth=true

У меня уже есть topi c test, созданный ранее, когда я публикую sh сообщение на сервере, оно не удалось:

[kafka@kafka-confluent ~]$ echo "Hello, World" | /home/kafka/confluent-5.4.0/bin/kafka-console-producer --broker-list localhost:9093 --topic test > /dev/null

[2020-02-20 18:45:12,193] ERROR Error when sending message to topic test with key: null, value: 13 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Topic test not present in metadata after 60000 ms.

Затем я проверил server.log показывает неудачную аутентификацию:

[2020-02-20 18:45:47,754] INFO [SocketServer brokerId=0] Failed authentication with /127.0.0.1 (SSL handshake failed) (org.apache.kafka.common.network.Selector)

1 Ответ

0 голосов
/ 20 февраля 2020

Стоит проверить ssl.endpoint.identification.algorithm:

Алгоритм идентификации конечной точки, используемый клиентами для проверки имени хоста сервера. Значение по умолчанию https. Клиенты, в том числе клиентские соединения, созданные посредником для связи между посредниками, проверяют, совпадает ли имя узла посредника с именем узла в сертификате посредника. Отключите проверку имени хоста сервера, установив ssl.endpoint.identification.algorithm в пустую строку

Поэтому установка ssl.endpoint.identification.algorithm в пустую строку должна помочь:

ssl.endpoint.identification.algorithm=

Обратите внимание, что этот конфиг предотвращает атаки «человек посередине», поэтому рассмотрите возможность его настройки соответствующим образом.

...