首页 文章

如何验证SSL适用于Kafka

提问于
浏览
6

我能够在我的kafka经纪人和客户端中设置SSL,我也能够看到当我们使用9093端口生成消息时,消息是消费者使用的SSL端口 .

我尝试的是通过9093端口发送消息,并将消息发送给 生产环境 者的消费者 .

我想要的是有一种方法来验证这是否真的有效,我的意思是我怎么能证明9092不是SSL而9093是SSl并且是安全的?

先谢谢,Vishesh .

3 回答

  • 5

    以下两种方式可以验证SSL的设置 .

    • -Djavax.net.debug=allbin/kafka-run-class.sh 中将此属性添加到以下位置:
    if [ -z "$KAFKA_JMX_OPTS" ]; then
        KAFKA_JMX_OPTS="  <**add here**>  -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.ssl=false "
    fi
    

    然后尾随kafka代理日志文件,你应该看到一些编码消息 .

    • 要验证服务器的密钥库和信任库是否已正确设置,您可以运行以下命令:
    openssl s_client -debug -connect localhost:9093 -tls1
    

    注意:TLSv1应列在ssl.enabled.protocols下 .

    在此命令的输出中,您应该看到服务器的证书:

    -----BEGIN CERTIFICATE-----
    {variable sized random bytes}
    -----END CERTIFICATE-----
    subject=/C=US/ST=CA/L=Santa Clara/O=org/OU=org/CN=Joe Smith
    issuer=/C=US/ST=CA/L=Santa Clara/O=org/OU=org/CN=kafka/emailAddress=test@test.com
    

    如果证书未显示或者存在任何其他错误消息,则表示您的密钥库未正确设置 .

    参考:

  • 0

    我们已经尝试使用SSL设置kafka并且如果它在SSL上工作则面临相同的问题交叉检查我删除了侦听器条目PLAINTEXT并保留了仅SSL和测试所需的配置 . 我们能够在安全端口9093发送和接收SSL消息 .

    在日志中,它确实提供了一个警告,但是它用于客户端身份验证,因此这不是问题,一旦测试我再次添加了PLAINTEXT条目 .

    我知道这不是最好的测试方式,但它对我有用

  • -1

    当你提到security.protocol = SSL时,它无法使用其他协议 . 有关更多证明,如上所述,您可以编辑kafka-run-class.sh以启用debug all并验证ssl握手发生和通过ssl通道发送的元数据 .

    谢谢阿卡什

相关问题