Hi,

I've set up broker ssl successfully. Here is the detail.

*[broker]*
1. run shell script (generate ssl key, certificate and CA and sign the
certificate)
2. here is  server.properties on brokers.

listeners=PLAINTEXT://:9092,SSL://:9093
ssl.keystore.location=/opt/kafka/keys/server.keystore.jks
ssl.keystore.password=test1234
ssl.key.password=test1234
ssl.truststore.location=/opt/kafka/keys/server.truststore.jks
ssl.truststore.password=test1234
ssl.client.auth=required
ssl.enabled.protocols=TLSv1.2,TLSv1.1,TLSv1

After that I've checked server.log and it has below info.

with addresses: PLAINTEXT -> EndPoint(192.168.64.1,9092,PLAINTEXT),SSL
-> EndPoint(192.168.64.1,9093,SSL)

And I also run below command and can see the proper server's certificate.
openssl s_client -debug -connect localhost:9093 -tls1



But When I run mirror maker process on the other mirror maker machine,
I got error.

*[Mirror Maker]*
1. I've run the same shell script which I've run for broker. (generate
ssl key, certificate and CA and sign the certificate)
2. Here is my mirror maker consumer configuration.
bootstrap.servers=brokerhost:9093
group.id=kafkaMirror
security.protocol=SSL
ssl.truststore.location=/opt/kafka/keys/client.truststore.jks
ssl.truststore.password=test1234
ssl.enabled.protocols=TLSv1
ssl.keystore.location=/opt/kafka/keys/client.keystore.jks
ssl.keystore.password=test1234
ssl.key.password=test1234

After that I tried below command. Below 3 command got same error.

bin/kafka-mirror-maker.sh --new.consumer --consumer.config
config/ssl_consumer.properties --producer.config config/producer.properties
--num.streams 10 --whitelist=test

bin/kafka-console-producer.sh --broker-list brokerhost:9093 --topic test
--producer.config config/ssl_client.properties

bin/kafka-console-consumer.sh --bootstrap-server brokerhost:9093 --topic
test --new-consumer --consumer.config config/ssl_client.properties


DEBUG Connection with {broker host}/{ip} disconnected
(org.apache.kafka.common.network.Selector)
javax.net.ssl.SSLHandshakeException: General SSLEngine problem
    at sun.security.ssl.Handshaker.checkThrown(Handshaker.java:1431)
    at
sun.security.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:535)
    at
sun.security.ssl.SSLEngineImpl.writeAppRecord(SSLEngineImpl.java:1214)
    at sun.security.ssl.SSLEngineImpl.wrap(SSLEngineImpl.java:1186)
    at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:469)
    at
org.apache.kafka.common.network.SslTransportLayer.handshakeWrap(SslTransportLayer.java:377)
    at
org.apache.kafka.common.network.SslTransportLayer.handshake(SslTransportLayer.java:242)
    at
org.apache.kafka.common.network.KafkaChannel.prepare(KafkaChannel.java:68)
    at org.apache.kafka.common.network.Selector.poll(Selector.java:281)
    at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:270)
    at
org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:216)
    at
org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:128)
    at java.lang.Thread.run(Thread.java:745)
Caused by: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
    at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1728)
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:304)
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)
    at
sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1478)
    at
sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:212)
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979)
    at sun.security.ssl.Handshaker$1.run(Handshaker.java:919)
    at sun.security.ssl.Handshaker$1.run(Handshaker.java:916)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.security.ssl.Handshaker$DelegatedTask.run(Handshaker.java:1369)
    at
org.apache.kafka.common.network.SslTransportLayer.runDelegatedTasks(SslTransportLayer.java:335)
    at
org.apache.kafka.common.network.SslTransportLayer.handshakeUnwrap(SslTransportLayer.java:413)
    at
org.apache.kafka.common.network.SslTransportLayer.handshake(SslTransportLayer.java:269)
    ... 6 more
Caused by: sun.security.validator.ValidatorException: PKIX path building
failed: sun.security.provider.certpath.SunCertPathBuilderException: unable
to find valid certification path to requested target
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387)
    at
sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
    at sun.security.validator.Validator.validate(Validator.java:260)
    at
sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
    at
sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:281)
    at
sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:136)
    at
sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1465)
    ... 15 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
    at
sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:145)
    at
sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:131)
    at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
    t sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382)

How can I fix this error?

Thanks.

Reply via email to