邯郸现代建设集团网站,网站推广方式百度云,wordpress多语好利弊,深圳做网站的给说zookeeper和kafka的SSL开启都可单独进行
生成SSL证书
使用jre自带的keytool工具生成#xff0c;linux和windows下生成的证书可以通用
生成含有一个私钥的keystore文件#xff0c;有效期10年#xff08;本文证书密码统一使用test123#xff09; keytool -genkeypair -ali…zookeeper和kafka的SSL开启都可单独进行
生成SSL证书
使用jre自带的keytool工具生成linux和windows下生成的证书可以通用
生成含有一个私钥的keystore文件有效期10年本文证书密码统一使用test123 keytool -genkeypair -alias certificatekey -dname “CN127.0.0.1, OU127.0.0.1, O127.0.0.1, LSH, STSH, CCN” -keyalg RSA -validity 3650 -keystore keystore.jks查看生成的keystore文件 keytool -list -v -keystore keystore.jks导出证书 keytool -export -alias certificatekey -keystore keystore.jks -rfc -file selfsignedcert.cer导入证书到truststore文件中 keytool -import -alias certificatekey -file selfsignedcert.cer -keystore truststore.jks查看生成的truststore文件 keytool -list -v -keystore truststore.jks
zookeeper开启SSL
受版本影响需要3.5及以上版本才能正常开启可查看 libs/zookeeper-xxx.jar确认版本号
将生成的证书文件统一放在kafka安装路径ssl文件夹需要新建编辑config/zookeeper.properties配置文件添加下列配置
#开启SSL
#ssl端口
secureClientPort3183
#开启ssl使用的本机访问地址
secureClientPortAddress127.0.0.1
serverCnxnFactoryorg.apache.zookeeper.server.NettyServerCnxnFactory
ssl.keyStore.location/home/app/kafka/ssl/keystore.jks
ssl.keyStore.passwordtest123
ssl.trustStore.location/home/app/kafka/ssl/truststore.jks
ssl.trustStore.passwordtest123若注释掉原本的 clientPort配置则可以屏蔽非SSL的访问地址
Kafka配置zookeeper ssl连接 编辑 config/server.properties, 开启SSL并配置上证书和证书库路径以及相应密码配置如下
zookeeper.connection.timeout.ms18000
zookeeper.connect127.0.0.1:3183
zookeeper.clientCnxnSocketorg.apache.zookeeper.ClientCnxnSocketNetty
zookeeper.ssl.client.enabletrue
zookeeper.client.securetrue
zookeeper.ssl.hostnameVerificationfalse
zookeeper.ssl.keystore.location/home/app/kafka/ssl/keystore.jks
zookeeper.ssl.keystore.passwordtest123
zookeeper.ssl.truststore.location/home/app/kafka/ssl/truststore.jks
zookeeper.ssl.truststore.passwordtest123kafka开启SSL
修改kafka安装路径下 config/server.properties文件将kafka连接协议改为SSL并配置上证书和证书库路径以及相应密码,如下
#IP地址使用实际kafka服务器IP地址(需自己更换下面的ip)
listeners SSL://192.168.6.6:9093
#server.keystore.jks的地址
ssl.keystore.location/home/app/kafka/ssl/keystore.jks
ssl.keystore.passwordtest123
ssl.truststore.location/home/app/kafka/ssl/truststore.jks
ssl.truststore.passwordtest123
ssl.client.authrequired
ssl.enabled.protocolsTLSv1.2
ssl.keystore.typeJKS
ssl.truststore.typeJKS
#关闭主机名
ssl.endpoint.identification.algorithm
#设置内部访问也用SSL默认值为security.inter.broker.protocolPLAINTEXT
security.inter.broker.protocolSSL测试
启动zookeeper服务 bin/zookeeper-server-start.sh config/zookeeper.properties 启动kafka服务 bin/kafka-server-start.sh config/server.properties 创建客户端连接配置文件 client-ssl.properties
security.protocolSSL
ssl.enabled.protocolsTLSv1.2
ssl.truststore.location/home/app/kafka/ssl/truststore.jks
ssl.truststore.passwordtest123
ssl.keystore.location/home/app/kafka/ssl/keystore.jks
ssl.keystore.passwordtest123
ssl.key.passwordtest123
ssl.endpoint.identification.algorithm创建带证书校验的生产者 bin/kafka-console-producer.sh --broker-list 192.168.6.6:9093 --topic test --producer.config client-ssl.properties 另起窗口创建带证书校验的消费者 bin/kafka-console-consumer.sh --broker-list 192.168.6.6:9093 --topic test --consumer.config client-ssl.properties 尝试在生产者窗口中输入任意字符回车若消费者窗口能正常接收则表示kafka运行正常