我能够在我的kafka经纪人和客户端中设置SSL,我也能够看到当我们使用9093端口生成消息时,消息是消费者使用的SSL端口 .
我尝试的是通过9093端口发送消息,并将消息发送给 生产环境 者的消费者 .
我想要的是有一种方法来验证这是否真的有效,我的意思是我怎么能证明9092不是SSL而9093是SSl并且是安全的?
先谢谢,Vishesh .
以下两种方式可以验证SSL的设置 .
-Djavax.net.debug=all
bin/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
如果证书未显示或者存在任何其他错误消息,则表示您的密钥库未正确设置 .
参考:
http://docs.confluent.io/2.0.0/kafka/ssl.html
https://github.com/Symantec/kafka-security-0.9
我们已经尝试使用SSL设置kafka并且如果它在SSL上工作则面临相同的问题交叉检查我删除了侦听器条目PLAINTEXT并保留了仅SSL和测试所需的配置 . 我们能够在安全端口9093发送和接收SSL消息 .
在日志中,它确实提供了一个警告,但是它用于客户端身份验证,因此这不是问题,一旦测试我再次添加了PLAINTEXT条目 .
我知道这不是最好的测试方式,但它对我有用
当你提到security.protocol = SSL时,它无法使用其他协议 . 有关更多证明,如上所述,您可以编辑kafka-run-class.sh以启用debug all并验证ssl握手发生和通过ssl通道发送的元数据 .
谢谢阿卡什
3 回答
以下两种方式可以验证SSL的设置 .
-Djavax.net.debug=all
在bin/kafka-run-class.sh
中将此属性添加到以下位置:然后尾随kafka代理日志文件,你应该看到一些编码消息 .
注意:TLSv1应列在ssl.enabled.protocols下 .
在此命令的输出中,您应该看到服务器的证书:
如果证书未显示或者存在任何其他错误消息,则表示您的密钥库未正确设置 .
参考:
http://docs.confluent.io/2.0.0/kafka/ssl.html
https://github.com/Symantec/kafka-security-0.9
我们已经尝试使用SSL设置kafka并且如果它在SSL上工作则面临相同的问题交叉检查我删除了侦听器条目PLAINTEXT并保留了仅SSL和测试所需的配置 . 我们能够在安全端口9093发送和接收SSL消息 .
在日志中,它确实提供了一个警告,但是它用于客户端身份验证,因此这不是问题,一旦测试我再次添加了PLAINTEXT条目 .
我知道这不是最好的测试方式,但它对我有用
当你提到security.protocol = SSL时,它无法使用其他协议 . 有关更多证明,如上所述,您可以编辑kafka-run-class.sh以启用debug all并验证ssl握手发生和通过ssl通道发送的元数据 .
谢谢阿卡什