我目前正在使用SSL身份验证配置Apache Kafka,在启动服务时遇到错误。代理程序似乎启动正确(似乎发生了领导人选举等),但一旦开始执行任何集群操作,我就会在日志中不断看到下面的错误。
[2019-05-16 11:04:00,351] INFO [Controller id=1, targetBrokerId=1] Failed authentication with XXXX/YYYY (SSL handshake failed) (org.apache.kafka.common.network.Selector)
[2019-05-16 11:04:00,351] DEBUG [Controller id=1, targetBrokerId=1] Node 1 disconnected. (org.apache.kafka.clients.NetworkClient)
[2019-05-16 11:04:00,351] DEBUG An authentication error occurred in broker-to-broker communication. (org.apache.kafka.clients.ManualMetadataUpdater)
org.apache.kafka.common.errors.SslAuthenticationException: SSL handshake failed
Caused by: javax.net.ssl.SSLProtocolException: Handshake message sequence violation, 2
尝试重新创建密钥和信任存储,尝试从代理间侦听器中删除SSL(这会导致匿名主体,我不想授予对任何资源的访问权)。
要解释我的配置:
#Kafka Server Properties Configuration
#Broker and listener configuration
broker.id=1
listeners=egress://address1:9093,inter://address1:9094,ingest://address2:9092
advertised.listeners=egress://address1:9093,inter://address1:9094,ingest://address2:9092
listener.security.protocol.map=egress:SSL,inter:SSL,ingest:SSL
inter.broker.listener.name=inter
##
#Listener Trust and Keystore Configurations
#egress configuration
listener.name.egress.ssl.keystore.type=JKS
listener.name.egress.ssl.keystore.location=/data/kafka/pki/egress-keystore.jks
listener.name.egress.ssl.keystore.password=<redacted>
listener.name.egress.ssl.truststore.type=JKS
listener.name.egress.ssl.truststore.location=/data/kafka/pki/egress-truststore.jks
listener.name.egress.ssl.truststore.password=<redacted>
listener.name.egress.ssl.key.password=<redacted>
listener.name.egress.ssl.client.auth=required
listener.name.egress.ssl.principal.mapping.rules=RULE:^.*[Oo][Uu]=([a-zA-Z0-9.-]*).*$/$1/L,DEFAULT
##
#inter configuration
listener.name.inter.ssl.keystore.type=JKS
listener.name.inter.ssl.keystore.location=/data/kafka/pki/inter-keystore.jks
listener.name.inter.ssl.keystore.password=<redacted>
listener.name.inter.ssl.truststore.type=JKS
listener.name.inter.ssl.truststore.location=/data/kafka/pki/inter-truststore.jks
listener.name.inter.ssl.truststore.password=<redacted>
listener.name.inter.ssl.key.password=<redacted>
listener.name.inter.ssl.client.auth=requested
listener.name.inter.ssl.principal.mapping.rules=RULE:^.*[Oo][Uu]=([a-zA-Z0-9.-]*).*$/$1/L,DEFAULT
##
#ingest configuration
listener.name.ingest.ssl.keystore.type=JKS
listener.name.ingest.ssl.keystore.location=/data/kafka/pki/ingest-keystore.jks
listener.name.ingest.ssl.keystore.password=<redacted>
listener.name.ingest.ssl.truststore.type=JKS
listener.name.ingest.ssl.truststore.location=/data/kafka/pki/ingest-truststore.jks
listener.name.ingest.ssl.truststore.password=<redacted>
listener.name.ingest.ssl.key.password=<redacted>
listener.name.ingest.ssl.client.auth=required
listener.name.ingest.ssl.principal.mapping.rules=RULE:^.*[Oo][Uu]=([a-zA-Z0-9.-]*).*$/$1/L,DEFAULT
##
#Generic SSL Configuration
ssl.keystore.type=JKS
ssl.keystore.location=/data/kafka/pki/inter-keystore.jks
ssl.keystore.password=<redacted>
ssl.truststore.type=JKS
ssl.truststore.location=/data/kafka/pki/inter-truststore.jks
ssl.truststore.password=<redacted>
ssl.key.password=<redacted>
ssl.client.auth=requested
ssl.principal.mapping.rules=RULE:^.*[Oo][Uu]=([a-zA-Z0-9.-]*).*$/$1/L,DEFAULT
ssl.enabled.protocols=TLSv1.2
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
allow.everyone.if.no.acl.found=false
super.users=User:<redacted>
##
#General configuration
auto.create.topics.enable=False
delete.topic.enable=True
log.dir=/var/log/kafka
log.retention.hours=24
log.cleaner.enable=True
log.cleanup.policy=delete
log.retention.check.interval.ms=3600000
min.insync.replicas=2
replication.factor=3
default.replication.factor=3
num.partitions=50
offsets.topic.num.partitions=50
offsets.topic.replication.factor=3
transaction.state.log.min.isr=2
transaction.state.log.num.partitions=50
num.replica.fetchers=4
auto.leader.rebalance.enable=True
leader.imbalance.check.interval.seconds=60
transactional.id.expiration.ms=10000
unclean.leader.election.enable=False
zookeeper.connect=zookeeper:2180
zookeeper.session.timeout.ms=100
controlled.shutdown.enable=True
broker.rack=rack1
您是否按照您描述的顺序将证书插入密钥库?首先设置ca,然后设置ca签名的证书以正确获取信任链可能很重要。
问题内容: 我想为在Ubuntu服务器12.04.1上运行的Apache的反向代理站点添加基本身份验证。 该Web应用程序是在Java EE容器上运行的Jenkins。 我在 httpd.conf中 添加了以下配置, 当我使用错误的密码或不存在的用户名进行身份验证时,我可以在apache的 error.log 中找到以下消息, [2012年10月27日星期六17:51:59] [错误] [客户端2
问题内容: 问题: 如何向OkHTTP添加授权代理。 我知道OkHTTP的生成器确实支持代理,尽管我很难设置一个代理。 我有IP /端口/用户名/密码。 尽管我不知道如何将其转换为client.SetProxy()中可以使用的那些。 这似乎过于复杂,我似乎无法弄清楚。任何帮助,将不胜感激。 问题答案: 试试这个:
问题内容: 我一直在尝试使用Apaches HttpComponent的httpclient时从配置的属性中配置用于代理身份验证的用户和密码,但是没有成功。我发现的所有示例都引用了不再可用的方法和类,例如和。 因此,谁能给我一个有关如何配置代理凭据的示例? 问题答案: 对于Basic-Auth,它看起来像这样: 开箱即用不支持AFAIK NTLM。但是您也许可以使用过载来管理它。
问题内容: 我想将具有基本身份验证(用户名,密码)的代理用于Java中的连接(并且仅此连接)。以下代码适用于HTTP URL(例如“ http://www.google.com ”): 但是,该代码不适用于HTTPS URL(例如“ https://www.google.com ”)!我收到的时候我尝试访问HTTPS URL。 此代码适用于HTTP和HTTPS: 第二个代码的问题在于它设置了一个新
我知道Fiddler支持Kerberos,所以我的想法是把打嗝链到Fiddler上。我首先确保我可以在Fiddler中使用篡改(使用此链接作为指南)。然后我将Fiddler设置为Burp的上游代理,但是当我在Burp中篡改一个请求时,在发出请求时仍然得到一个未经授权的401。 关于如何让Burp进行Kerberos身份验证,还有其他想法吗?
问题内容: 我正在尝试通过FTP SITE代理访问FTP服务器以绕过防火墙,因为我知道我的用户名/密码正确,因为可以使用FileZilla进行连接。我尝试使用,但没有用。码: 给我这个错误: 我尝试过的事情: 使用备用构造函数。 拆下 使用just ,不使用FTPProxyConnector 设置连接器之前进行身份验证,反之亦然。 但是,当我仅使用Authenticator时,会收到不同的错误提示