KAFKA: соединение с узлом не прошло аутентификацию из-за: аутентификации не удалось из-за неверных учетных данных с механизмом SASL SCRAM-SHA-256
Я пытался добавить аутентификацию SASL для моих Kafka Brokers, используя SASL_PLAINTEXT SCRAM-SHA-256 некоторое время, но безуспешно. Я продолжаю получать следующую ошибку в лог-файле Кафки.
ОШИБКА [ID контроллера =0, targetBrokerId=0] Соединение с узлом 0 не прошло аутентификацию из-за: аутентификации не удалось из-за неверных учетных данных с механизмом SASL SCRAM-SHA-256 (org.apache.kafka.clients.NetworkClient).
Но я следил за документами Кафки по SCRAM Config до письма и не добился успеха в достижении этой цели.
Я зарегистрировал администратора на Zookeeper, используя kafka-configs.sh, как показано ниже:
bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config 'SCRAM-SHA-256=[password=admin-secret],SCRAM-SHA-512=[password=admin-secret]' --entity-type users --entity-name admin
Вот часть моего server.properties, где я настраиваю SCRAM-SHA-256.
broker.id=50
sasl.enabled.mechanisms=SCRAM-SHA-256
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256
security.inter.broker.protocol=SASL_PLAINTEXT
listeners=SASL_PLAINTEXT://172.16.3.21:9092
advertised.listeners=SASL_PLAINTEXT://172.16.3.21:9092
listener.name.sasl_plaintext.scram-sha-256.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
username="admin" \
password="admin-secret";
0 ответов
Создание CA на одном узле и копирование его на другой узел вручную сработало для меня.
ШАГ 1- ЗАПУСТИТЕ на каждом узле
keytool -keystore server.keystore.jks -alias kafka -dname "cn = kafka, ou=it, o =stackru, l =alpha, st =beta, c =IN" -storepass test123 -validity 365 -keyalg RSA -genkey - ext SAN = DNS:kafka-host1, DNS:kafka-host2, DNS:kafka-host3, DNS: localhost, DNS: kafka
ШАГ 2 - проверьте сертификат
keytool -list -v -keystore server.keystore.jks
ШАГ 3 - сгенерируйте его один раз на одном узле и скопируйте на другие узлы.
openssl req -new -x509 -keyout ca-key -out ca-cert -days 365 -subj "/ C=IN / ST=beta/O=stackru/ OU=it/L=alpha/CN=kafka"
ОСТАВШИЕСЯ ШАГИ НИЖЕ НЕОБХОДИМЫ ДЛЯ ЗАПУСКА НА КАЖДОМ УЗЛЕ
keytool -keystore server.truststore.jks -alias CARoot -import -file ca-cert -storepass test123 -noprompt
keytool -keystore client.truststore.jks -alias CARoot -import -file ca-cert -storepass test123 -noprompt
keytool -keystore server.keystore.jks -alias kafka -certreq -file cert-file -storepass test123
openssl x509 -req -CA ca-cert -CAkey ca-key -in cert-file -out cert-signed -days 3650 -CAcreateserial -passin pass:test123
keytool -keystore server.keystore.jks -alias CARoot -import -file ca-cert -storepass test123 -noprompt
keytool -keystore server.keystore.jks -alias kafka -import -file с подписью сертификата -storepass test123 -noprompt