web-dev-qa-db-fra.com

Apache kafka version 2.0.0 - La connexion au nœud 1 a échoué l'authentification en raison de: poignée de main SSL

J'utilise kafka version kafka_2.12-2.0.0 et j'ai reçu l'erreur ci-dessous après avoir activé l'authentification SSL. Il semble fonctionner correctement avec les versions précédentes: kafka_2.12-1.1.0, 2.11-0.10.2.2 etc.

Je ne comprends pas pourquoi cela ne fonctionne pas avec la dernière version 2.11-0.2.0.0? Quelqu'un at-il observé le même problème auquel je suis confronté en ce moment avec la version 2.0.0.

Voici mon fichier de configuration de docker d'environnement de test.

listeners=PLAINTEXT://:9092,SSl://:9093
ssl.client.auth=required
ssl.keystore.location=/path/to/server.keystore
ssl.keystore.password=<Key store password>
ssl.key.password = <private key password>
ssl.truststore.location=/path/to/truststore.keystore
ssl.truststore.password=<trust store password>
security.inter.broker.protocol=SSL

Et voici l'erreur:

[2018-10-01 09:33:38,984] ERROR [Controller id=1, targetBrokerId=1] Connection to node 1 failed authentication due to: SSL handshake failed (org.Apache.kafka.clients.NetworkClient)

Est-ce que quelqu'un peut m'aider ?

9
Satya_1

Sans plus de détails, il est difficile de dire avec certitude, mais 2.0.0 a introduit un changement de comportement lié à la gestion des connexions SSL.

Comme mentionné dans les notes de mise à niveau 2.0. , le paramètre du courtier ssl.endpoint.identification.algorithm est désormais défini sur https. Cela applique la vérification du nom d'hôte pour empêcher les attaques "d'homme au milieu".

Pour restaurer le comportement précédent, vous devez définir explicitement cela sur une chaîne vide.

ssl.endpoint.identification.algorithm=
13
Mickael Maison

Était également confronté à un problème similaire. Mon problème, j'avais Kafka serveur 1.1.1 en cours d'exécution et j'utilisais Kafka client 2.1.0 pour pousser les enregistrements. Changer Kafka client à 1.1.1 a résolu mon problème.

J'espère que cela t'aides.

0