SSL 握手失败:kafka 代理 SSL 中的证书链中的自签名证书

问题描述 投票:0回答:0

当我尝试在本地主机 kafka 中设置 SSL 时,我在代理上收到此错误:

[2023-07-24 23:41:36,219] INFO [SocketServerbrokerId=0] /127.0.0.1 身份验证失败(SSL 握手失败)(org.apache.kafka.common.network.Selector)

试图准确找出我遇到的问题:

openssl s_client -debug -connect localhost:9093 -tls1_2 -showcerts

结果:

SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: 9FF501EBB724972D231A2A606398F69A710FDC419D706142E3DE73B7EB1C79B1
    Session-ID-ctx:
    Master-Key: AAA6240C9BA554D6F0D442A5CD4F3E697656F96D40D087A9779CBDD5EDA1246C7CE4BA450DE9842E50AF588FF49D5990
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1690234896
    Timeout   : 7200 (sec)
    Verify return code: 19 (self signed certificate in certificate chain)
    Extended master secret: yes

我在带有 Ubuntu 20.04 的 Windows 上使用 WSL,使用低于 1.2 的 tls 版本,从而导致我的 ubuntu 版本固有的不同错误。

我以不同的方式生成了我的信任库、ca 和密钥库,但它们总是导致相同的问题,所以我猜问题来自我而不是脚本/教程。

假设我使用了汇合脚本:https://github.com/confluenceinc/confluence-platform-security-tools/blob/master/kafka-generate-ssl.sh

我的经纪商配置:

ssl.keystore.location=/mnt/e/.../keystore/kafka.keystore.jks
ssl.keystore.password=password
ssl.key.password=password
ssl.truststore.location=/mnt/e/.../truststore/kafka.truststore.jks
ssl.truststore.password=password
ssl.ca.location=/mnt/e/.../ca-key
ssl.endpoint.identification.algorithm=
ssl.enabled.protocols=TLSv1.2,TLSv1.1,TLSv1
ssl.client.auth=required

我在每个证书中将 CN 设置为

localhost

subject=C = Unknown, ST = Unknown, L = Unknown, O = Unknown, OU = Unknown, CN = localhost

现在 CA 将导入到密钥库中。

You will be prompted for the keystore's password and a confirmation that you want to
import the certificate.
Owner: CN=localhost, O=Internet Widgits Pty Ltd, ST=Some-State, C=AU
Issuer: CN=localhost, O=Internet Widgits Pty Ltd, ST=Some-State, C=AU

我有点不知道接下来要尝试什么。 使用 Apache kafka 2.5

security ssl apache-kafka openssl keytool
© www.soinside.com 2019 - 2024. All rights reserved.