web-dev-qa-db-fra.com

Kafka Échec de la prise de contact SSL

J'essaie d'activer l'authentification SSL sur mon Kafka. Je suis la section 7.2 dans la documentation ci-dessous (lien).

http://kafka.Apache.org/documentation.html#security_ssl

J'ai suivi toutes les étapes, mais lors de l'appel du fichier producteur.bat pour envoyer des données au sujet, j'obtiens une erreur ci-dessous.

Erreur [~ # ~] [~ # ~] [Producer clientId = console-producteur] La connexion au nœud -1 a échoué l'authentification en raison de: Échec de l'établissement de liaison SSL (org.Apache.kafka.clients.NetworkClient)

Causé par: Java.security.cert.CertificateException: aucun nom correspondant à l'hôte local trouvé

J'ai créé le certificat avec CN=localhost.

4
Osman Jabri

La vérification du nom d'hôte du serveur peut être désactivée en définissant ssl.endpoint.identification.algorithm sur une chaîne vide sur le client

8
charlb

Généralement Java.security.cert.CertificateException: aucun nom correspondant à localhost trouvé signifie que le nom d'hôte dans le certificat ne correspond pas au nom d'hôte du serveur.

Il y a une grande explication de cette erreur sur le fil suivant .

1
Filipe dos Santos

Nous rencontrons les erreurs suivantes, cela peut être dû à la mise à niveau de la version de Kafka de 1.x vers 2.x.

javax.net.ssl.SSLHandshakeException: problème général SSLEngine ... javax.net.ssl.SSLHandshakeException: problème général SSLEngine ... Java.security.cert.CertificateException: aucun nom correspondant *** trouvé

ou

[Producer clientId = producteur-1] La connexion au nœud -2 a échoué l'authentification en raison de: Échec de l'établissement de la liaison SSL

La valeur par défaut de ssl.endpoint.identification.algorithm a été remplacée par https, qui effectue la vérification du nom d'hôte (des attaques man-in-the-middle sont possibles sinon). Définissez ssl.endpoint.identification.algorithm sur une chaîne vide pour restaurer le comportement précédent. Apache Kafka Changements notables dans 2.0.

Solution: SslConfigs.SSL_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG, ""

1
Senchan Sue

Définissez simplement ssl.endpoint.identification.algorithm = Cela peut vous aider.

0
macknight