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

Reply via email to