Ah, that makes sense. After adding the truststore to the server configs things seem to work correctly, thanks!
marko > Have you configured a truststore in server.properties? You don't need this > when using security.inter.broker.protocol=PLAINTEXT and client-auth is > disabled, but you do need to set truststore for the client-mode > connections > made by the broker when security.inter.broker.protocol=SSL. If that still > doesn't help, running the broker the JVM option -Djavax.net.debug=ssl > would > give more debug info. > > On Wed, Apr 20, 2016 at 11:15 PM, <ma...@kafkatool.com> wrote: > >> After making the suggested change, I see this error during startup >> >> [2016-04-20 18:03:10,522] INFO [Kafka Server 0], started >> (kafka.server.KafkaServer) >> [2016-04-20 18:03:11,093] WARN Failed to send SSL Close message >> (org.apache.kafka.common.network.SslTransportLayer) >> java.io.IOException: Broken pipe >> at sun.nio.ch.FileDispatcherImpl.write0(Native Method) >> at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) >> at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) >> at sun.nio.ch.IOUtil.write(IOUtil.java:65) >> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471) >> at >> >> org.apache.kafka.common.network.SslTransportLayer.flush(SslTransportLayer.java:194) >> at >> >> org.apache.kafka.common.network.SslTransportLayer.close(SslTransportLayer.java:161) >> at >> org.apache.kafka.common.network.KafkaChannel.close(KafkaChannel.java:50) >> at org.apache.kafka.common.network.Selector.close(Selector.java:442) >> at org.apache.kafka.common.network.Selector.poll(Selector.java:310) >> at >> org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:270) >> at >> >> kafka.utils.NetworkClientBlockingOps$.recurse$1(NetworkClientBlockingOps.scala:128) >> at >> >> kafka.utils.NetworkClientBlockingOps$.kafka$utils$NetworkClientBlockingOps$$pollUntilFound$extension(NetworkClientBlockingOps.scala:139) >> at >> >> kafka.utils.NetworkClientBlockingOps$.kafka$utils$NetworkClientBlockingOps$$pollUntil$extension(NetworkClientBlockingOps.scala:105) >> at >> >> kafka.utils.NetworkClientBlockingOps$.blockingReady$extension(NetworkClientBlockingOps.scala:58) >> at >> >> kafka.controller.RequestSendThread.brokerReady(ControllerChannelManager.scala:225) >> at >> >> kafka.controller.RequestSendThread.liftedTree1$1(ControllerChannelManager.scala:172) >> at >> >> kafka.controller.RequestSendThread.doWork(ControllerChannelManager.scala:171) >> at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:63) >> >> and also errors during shutdown >> >> [2016-04-20 18:09:15,293] INFO [Kafka Server 0], Starting controlled >> shutdown (kafka.server.KafkaServer) >> [2016-04-20 18:09:15,330] WARN [Kafka Server 0], Error during controlled >> shutdown, possibly because leader movement took longer than the >> configured >> socket.timeout.ms: Connection to Node(0, debian, 9094) failed >> (kafka.server.KafkaServer) >> >> the relevant configs are >> >> >> listeners=SSL://:9094 >> security.inter.broker.protocol=SSL >> port=9094 >> >> Marko >> >> > If your only listener is SSL, you should set >> > security.inter.broker.protocol >> > to SSL even for single-broker cluster since it is used by the >> controller. >> > I >> > would have expected an error in the logs though if this was not >> configured >> > correctly. >> > >> > On Wed, Apr 20, 2016 at 1:34 AM, <ma...@kafkatool.com> wrote: >> > >> >> There is only one broker in this case. There are no errors (besides >> the >> >> warning below) on either the broker or the client side. It just >> returns >> >> an >> >> empty topic list if plaintext is not configured, even though client >> is >> >> using SSL in both cases. >> >> >> >> marko >> >> >> >> > Hi, >> >> > >> >> > That warning is harmless. Personally, I think it may be a good idea >> to >> >> > remove as it confuses people in cases such as this. >> >> > >> >> > Do you have multiple brokers? Are the brokers configured to use SSL >> >> for >> >> > inter-broker communication (security.inter.broker.protocol)? This >> is >> >> > required if the only listener is for SSL. >> >> > >> >> > Ismael >> >> > >> >> > On Wed, Apr 20, 2016 at 12:42 AM, <ma...@kafkatool.com> wrote: >> >> > >> >> >> What is the correct way of using SSL between the client and >> brokers >> >> if >> >> >> client certificates are not used? The broker (0.9.0.0) reports the >> >> >> following in the log >> >> >> >> >> >> WARN SSL peer is not authenticated, returning ANONYMOUS instead >> >> >> >> >> >> as a result of this (I belive) KafkaConsumer.listTopics() returns >> an >> >> >> empty >> >> >> map. Does this require a custom Authenticator on the broker side? >> If >> >> so, >> >> >> are there examples on how to do that? >> >> >> >> >> >> Interestingly enough, modifying (no other changes) >> >> >> >> >> >> listeners=SSL://:9094 >> >> >> >> >> >> to >> >> >> >> >> >> listeners=PLAINTEXT://:9093,SSL://:9094 >> >> >> >> >> >> makes the listTopics() method to return the topics. If SSL is used >> by >> >> >> the >> >> >> consumer in both cases, I'm not sure why having the plaintext port >> >> would >> >> >> affect the SSL behavior. >> >> >> >> >> >> -- >> >> >> Best regards, >> >> >> Marko >> >> >> www.kafkatool.com >> >> >> >> >> >> >> >> > >> >> >> >> >> >> >> > >> > >> > -- >> > Regards, >> > >> > Rajini >> > >> >> >> > > > -- > Regards, > > Rajini >