Kafka SSL 对等体未经过身份验证,客户端连接代理 SASL 端口时返回 ANONYMOUS错误,它允许在 PLAINTEXT 或 SSL 端口上进行连接。
我在启用 SSL 的 Windows 系统中安装了 kafka 2.2.0,其中 kafka 代理明文在 9092 上运行,SSL 在 9093 上运行。最重要的是,使用 SCRAM 机制配置 SASL,侦听器端口为 9094,最终出现错误在以kafka-console-producer.bat --broker-list localhost:9094 --topic xxx运行生产者时在问题摘要中提到
以下是 SASL 配置,未提供其他配置,如基本和 SSL
zookeeper.properties
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
requireClientAuthScheme=sasl
jaasLoginRenew=3600000
服务器属性
listeners=PLAINTEXT://0.0.0.0:9092,SSL://0.0.0.0:9093,SASL_SSL://0.0.0.0:9094
advertised.listeners=PLAINTEXT://localhost:9092,SSL://localhost:9093,SASL_SSL://localhost:9094
sasl.enabled.mechanisms=SCRAM-SHA-256
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256
zookeeper_server_jaas.conf
Server {
org.apache.kafka.common.security.scram.ScramLoginModule required
username="admin"
password="admin-pwd"
user_admin="admin-pwd"
user_other1="other1-pwd"
user_other2="other2-pwd";
};
生产者属性
security.protocol=SSL
kafka_server_jaas.conf
KafkaServer {
org.apache.kafka.common.security.scram.ScramLoginModule required
username="admin"
password="admin-pwd";
};
Client {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-pwd";
};
kafka_client_jaas.conf
KafkaClient {
org.apache.kafka.common.security.scram.ScramLoginModule required
username="admin"
password="admin-pwd";
};
启动 Zookeeper 为
SET ZOO_LOG_DIR=C:/Work/kafka_2.11-2.2.0-for-ssl/zookeeper-data
SET KAFKA_HOME=C:/Work/kafka_2.11-2.2.0-for-ssl
set KAFKA_OPTS=-Djava.security.auth.login.config=%KAFKA_HOME%/config/zookeeper_server_jaas.conf
zookeeper-server-start.bat %KAFKA_HOME%/config/zookeeper.properties
启动kafka为
set KAFKA_HOME=C:/Work/kafka_2.11-2.2.0-for-ssl
set KAFKA_OPTS=-Djava.security.auth.login.config=%KAFKA_HOME%/config/kafka_server_jaas.conf
kafka-server-start.bat %KAFKA_HOME%/config/server.properties
启动生产者为
SET KAFKA_HOME=C:/Work/kafka_2.11-2.2.0-for-ssl
set KAFKA_OPTS=-Djava.security.auth.login.config=%KAFKA_HOME%/config/kafka_client_jaas.conf
kafka-console-producer.bat --broker-list localhost:9094 --topic xxx
只有当我将代理端口用作 9092 时,生产者才能工作。我是否错过了某些东西并最终导致配置错误。有输入吗?
更新:
这是连接生产者/消费者时的错误
[2019-10-14 15:39:42,108] 调试 [SslTransportLayer channelId=127.0.0.1:9094-127.0.0.1:63848-0 key=sun.nio.ch.SelectionKeyImpl@222a223c] SSL 对等体未通过身份验证,返回 ANONYMOUS相反(org.apache.kafka.common.network.SslTransportLayer)[2019-10-14 15:39:42,108] 调试 [SslTransportLayer channelId=127.0.0.1:9094-127.0.0.1:63848-0 key=sun.nio。 ch.SelectionKeyImpl@222a223c] SSL 握手成功完成 peerHost '127.0.0.1' peerPort 63848 peerPrincipal 'User:ANONYMOUS' cipherSuite 'TLS_DHE_DSS_WITH_AES_256_CBC_SHA256' (org.apache.kafka.common.network.SslTransportLayer) [2019-10-14 15: 39:42,108] DEBUG 在身份验证期间将 SASL 服务器状态设置为 HANDSHAKE_OR_VERSIONS_REQUEST (org.apache.kafka.common.security.authenticator.SaslServerAuthenticator) [2019-10-14 15:39:42,108] DEBUG 在身份验证期间处理 Kafka 请求 API_VERSIONS (org.apache.kafka.common.security.authenticator.SaslServerAuthenticator) [2019-10-14 15:39:42,108] DEBUG 在身份验证期间将 SASL 服务器状态设置为 HANDSHAKE_REQUEST (org.apache. kafka.common.security.authenticator.SaslServerAuthenticator) [2019-10-14 15:39:42,108] DEBUG 在身份验证期间将 SASL 服务器状态设置为 FAILED (org.apache.kafka.common.security.authenticator.SaslServerAuthenticator) [2019-10 -14 15:39:42,108] INFO [SocketServer brokerId=0] 127.0.0.1/127.0.0.1 身份验证失败(SASL 握手期间出现 METADATA 类型的意外 Kafka 请求。)(org.apache.kafka.common.network.Selector)108] DEBUG 在身份验证期间将 SASL 服务器状态设置为 HANDSHAKE_REQUEST (org.apache.kafka.common.security.authenticator.SaslServerAuthenticator) [2019-10-14 15:39:42,108] DEBUG 在身份验证期间将 SASL 服务器状态设置为 FAILED (org. apache.kafka.common.security.authenticator.SaslServerAuthenticator) [2019-10-14 15:39:42,108] INFO [SocketServer brokerId = 0] 127.0.0.1/127.0.0.1 身份验证失败(SASL 期间出现 METADATA 类型的意外 Kafka 请求握手。)(org.apache.kafka.common.network.Selector)108] DEBUG 在身份验证期间将 SASL 服务器状态设置为 HANDSHAKE_REQUEST (org.apache.kafka.common.security.authenticator.SaslServerAuthenticator) [2019-10-14 15:39:42,108] DEBUG 在身份验证期间将 SASL 服务器状态设置为 FAILED (org. apache.kafka.common.security.authenticator.SaslServerAuthenticator) [2019-10-14 15:39:42,108] INFO [SocketServer brokerId = 0] 127.0.0.1/127.0.0.1 身份验证失败(SASL 期间出现 METADATA 类型的意外 Kafka 请求握手。)(org.apache.kafka.common.network.Selector)108] INFO [SocketServer brokerId=0] 使用 127.0.0.1/127.0.0.1 身份验证失败(SASL 握手期间出现 METADATA 类型的意外 Kafka 请求。)(org.apache.kafka.common.network.Selector)108] INFO [SocketServer brokerId=0] 使用 127.0.0.1/127.0.0.1 身份验证失败(SASL 握手期间出现 METADATA 类型的意外 Kafka 请求。)(org.apache.kafka.common.network.Selector)