Производитель Kafka не может пройти аутентификацию у брокера - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь создать зашифрованное соединение SSL между простым производителем кафки и брокером.

Я настроил брокеров точно так, как описано в официальной документации: https://kafka.apache.org/documentation/#security

Для производителя я использую kafka- python, а его конструктор настроен так:

self.producer = KafkaProducer(bootstrap_servers=broker, 
                              request_timeout_ms=request_timeout,
                              security_protocol='SSL',
                              ssl_check_hostname=True,
                              ssl_cafile='ssl/CARoot.pem',
                              ssl_certfile='ssl/certificate.pem',
                              ssl_keyfile='ssl/key.pem')

Вот что происходит:

  • Если ssl_check_hostname установлен на False соединение установлено правильно. В качестве доказательства я попытался прослушать пакеты с помощью wireshark и ничего не вижу, вместо этого с помощью PLAINTEXT wireshark может получить все пакеты и легко прочитать все содержимое.
  • Если для ssl_check_hostname установлено значение True система получила следующую ошибку:

    [SSL: CERTIFICATE_VERIFY_FAILED] проверка сертификата не удалась: несоответствие IP-адреса, сертификат недействителен для [IP_address]

Поиск по inte rnet Я обнаружил, что эта проблема связана с SAN, вставленным во время конфигурации server.keystore:

keytool -keystore server.keystore.jks -alias localhost -validity 365000 -genkey -keyalg RSA -ext SAN = DNS: {fqdn}

Я пытался использовать:

  • SAN = DNS: localhost (где locahost - это вывод hostname --fqdn команда
  • SAN = DNS: XXXX (где XXXX - IP-адрес брокера)
  • SAN = IP: XXXX (где XXXX - IP-адрес брокера)
  • SAN = IP: YYYY (где YYYY - это IP-адрес пользователя ducer) В этом случае при попытке подключения я получил следующую ошибку:

    [SSL: CERTIFICATE_VERIFY_FAILED] не удалось проверить сертификат: самоподписанный сертификат в цепочке сертификатов

Как я могу решить эту проблему?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...