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 ?
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=
É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.