Hi all

I'm working on Kafka(kafka_2.13-2.7.0)cluster with SSL enabled, and I need help 
on Kafka broker config(I got error of connection failed) and client SSL 
config(I got error of SSL handshake failed).


I setup Kafka and client SSL config by taking reference of
Apache Kafka<https://kafka.apache.org/documentation/#security_ssl>
Apache Kafka TLS encryption & authentication - Azure HDInsight | Microsoft 
Docs<https://docs.microsoft.com/en-us/azure/hdinsight/kafka/apache-kafka-ssl-encryption-authentication>

And I can verify my Kafka cluster SSL with below command:

openssl s_client -debug -connect sc2-kafka-dev-001_node-1:9093 -tls1_2

some output is:

Server certificate
-----BEGIN CERTIFICATE-----
MIID1TCCAb0CFGy5db0MHYKTnZZAQpnHsR3ywrsqMA0GCSqGSIb3DQEBCwUAMBwx
GjAYBgNVBAMMEUthZmthLVNlY3VyaXR5LUNBMB4XDTIxMDQzMDE0NDEzMVoXDTIy
MDQzMDE0NDEzMVowMjEwMC4GA1UEAwwnc2MyLWthZmthLWRldi0wMDFfbm9kZS0x
LmVuZy52bXdhcmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
wuL14qBmI++Ii/lxLU32TlGd0VlDX29JXjyqEUoaXDjYBroY5+FDhawladB3YU3/
IY2fQ9PHoPLVntBnMMf29m8buVFKXsRT0mOjkyVuUUZcp0L9mLMKnKE1Rn+EJM93
Ys0A8/YJgp3LYu0cbLbqw9TUdFkyesaV5zqAXse14npi0eqXk5pk5ss2ePfqa6bN
m2zM1eZrJjjp1vFx0oL8N6z2z6+AS67unyj9x2SjyXQgigbnz36VM99EUeMeQLuz
weuZN97sKKW4ub+ya0R6lbS5pum+iQ4ukA9TeiXllqwoFZTEZistsbec5OvgVgC0
41I6rtlGdqkAPEyU8xtfnwIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQAdTBndO51t
IK40oYHf2dWHE4WPvZfDoQpAVwhLptsbQD4RVdpPUxagbh4F4zAFwIZgCpwU0YBz
sq71p45x/3NjX40eIWsC0WgQoCQsCWimXQSMOltopNEhrSICd7mD1H/C1uftNXU1
uAGRGUC8wgX1ULdHLg0Szvz519ia+uZqOKyzsMBDZnmtesli3lTmXjjO5E5aPLaU
ztLeZrhHzR7ib9ZtIidl4hviPKbdLBPkeBqk7b821RbCK1Ny8eSOBYY3wePqTGU3
LbLEEeFgNBr9wEsmEcr237QW4UrYX5TjxeoykQj72u9tAb8mTrAY8QXUo9f826hQ
kTcSe504t6hMmX6oP9R3wUHqpIAZ3woqOV/I2KwCt2L3thUXyJK7F9XTSZQq89DT
E4SQlEthR+Mq/eIqyunq403MnQuxRGpfkiOLzBO1vUYDbnWjaC3oouTW9Y1rhF0L
t+DqaMXSTLyhcLZ8xUMcpgfROMArjufTsQ5KWqUYCTUffsrRVFzlyg02OjzgYJ5a
XR/lp64V3Ul1/8EM7QujDgdq9KTRu4FxuOk+8AFMOz4UJ1iqFONBKz6UTYmKjECw
aEp8k8WjuyHeuO5+d9qav+xYSQbHhZ5QSILKlyDSDkLWTjgNyvCMKzabtTW1HfQJ
p4DsCTjGse76yHJNAnH0jdGBVvi8ONdhuA==
-----END CERTIFICATE-----
subject=CN = sc2-kafka-dev-001_node-1.eng.vmware.com

issuer=CN = Kafka-Security-CA


So when I see above output, does it means my SSL setup for Kafka broker is ok?


However, I didn't get below keyword in server.log, as mentioned from Kafka 
webpage, I should see below in server.log.


with addresses: PLAINTEXT -> EndPoint({{fqdn}},9092,PLAINTEXT),SSL -> 
EndPoint({{fqdn}},9093,SSL)

My two server.log output are:

[2021-04-30 09:05:08,954] INFO [KafkaServer id=1] started 
(kafka.server.KafkaServer)

While another one is:

[2021-04-30 09:05:30,183] WARN [Controller id=2, targetBrokerId=1] Connection 
to node 1 (sc2-kafka-dev-001_node-1.eng.vmware.com/10.185.50.10:9093) could not 
be established. Broker may not be available. 
(org.apache.kafka.clients.NetworkClient)
[2021-04-30 09:05:30,311] WARN [Controller id=2, targetBrokerId=3] Connection 
to node 3 (sc2-kafka-dev-001_node-3.eng.vmware.com/10.185.50.12:9093) could not 
be established. Broker may not be available. 
(org.apache.kafka.clients.NetworkClient)

It looks like the Kafka cluster with SSL enabled has some problem on setup 
connection across brokers. BTW, I haven't apply for the DNS record for my 
brokers, I setup domain name in /etc/hosts, and it shall be ok for the test?


Also, when I test Kafka command line with SSL config, I see auth error, but I 
didn't config auth, I just config ssl encryption:

[worker@sc2-kafka-dev-001_node-1 client]$ 
/opt/kafka/kafka_2.13-2.7.0/bin/kafka-console-producer.sh --broker-list 
sc2-kafka-dev-001_node-1:9093 --topic topic1 --producer.config 
./client-ssl.properties
>[2021-04-30 09:11:19,574] ERROR [Producer clientId=console-producer] 
>Connection to node -1 (sc2-kafka-dev-001_node-1/10.185.50.10:9093) failed 
>authentication due to: SSL handshake failed 
>(org.apache.kafka.clients.NetworkClient)
[2021-04-30 09:11:19,575] WARN [Producer clientId=console-producer] Bootstrap 
broker sc2-kafka-dev-001_node-1:9093 (id: -1 rack: null) disconnected 
(org.apache.kafka.clients.NetworkClient)


Here is my part of Kafka broker config:

listeners=PLAINTEXT://sc2-kafka-dev-001_node-2.eng.vmware.com:9092, 
SSL://sc2-kafka-dev-001_node-2.eng.vmware.com:9093
advertised.listeners=PLAINTEXT://sc2-kafka-dev-001_node-2.eng.vmware.com:9092, 
SSL://sc2-kafka-dev-001_node-2.eng.vmware.com:9093

ssl.endpoint.identification.algorithm=
security.inter.broker.protocol=SSL

ssl.keystore.location=/data/ssl1/kafka.server.keystore.jks
ssl.keystore.password=MyServerPassword123
ssl.key.password=MyServerPassword123
ssl.truststore.location=/data/ssl1/kafka.server.truststore.jks
ssl.truststore.password=MyServerPassword123
ssl.enabled.protocols=TLSv1.2
ssl.truststore.type=JKS
ssl.keystore.type=JKS
ssl.secure.random.implementation=SHA1PRNG


Here is my client config:

security.protocol=SSL
ssl.truststore.location=/data/client/kafka.client.truststore.jks
ssl.truststore.password=MyClientPassword123
ssl.enabled.protocols=TLSv1.2



THANKS

Reply via email to