一、kafka broker配置以及sh客户端的使用

最近在使用kafka集群的过程中,为了保证安全性,配置了ssl加密,首先按照官网的配置进行如下的设置

#!/bin/bash

#Step 1

keytool -keystore server.keystore.jks -alias localhost -validity 365 -keyalg RSA -genkey

#Step 2

openssl req -new -x509 -keyout ca-key -out ca-cert -days 365

keytool -keystore server.truststore.jks -alias CARoot -import -file ca-cert

keytool -keystore client.truststore.jks -alias CARoot -import -file ca-cert

#Step 3

keytool -keystore server.keystore.jks -alias localhost -certreq -file cert-file

openssl x509 -req -CA ca-cert -CAkey ca-key -in cert-file -out cert-signed -days 365 -CAcreateserial -passin pass:test1234

keytool -keystore server.keystore.jks -alias CARoot -import -file ca-cert

keytool -keystore server.keystore.jks -alias localhost -import -file cert-signed

这个流程下来,会生成以下文件:

server.keystore.jks 存储证书的密钥库文件

ca-key CA密钥,需要妥善保存

ca-cert CA证书(包含公钥)

cert-file 当前未签名的证书

cert-signed 当前已签名的证书

client.truststore.jks 客户端信任存储区

server.truststore.jks 服务端信任存储区

需要将server.keystore.jks server.truststore.jks 给每一个broker复制一份

kafka server.conf配置

listeners=SSL://XXXXXX:9092

ssl.keystore.location=/home/admin/ssl/server.keystore.jks

ssl.keystore.password=XXXXX

ssl.key.password=XXXXX

ssl.truststore.location=/home/admin/ssl/server.truststore.jks

ssl.truststore.password=XXXXXX

ssl.enabled.protocols=TLSv1.2,TLSv1.1,TLSv1

ssl.keystore.type=JKS

ssl.truststore.type=JKS

ssl.secure.random.implementation=SHA1PRNG

security.inter.broker.protocol=SSL

kafka consumer配置

security.protocol=SSL

ssl.truststore.location=/home/admin/ssl/client.truststore.jks

ssl.truststore.password=XXXXXX

kafka producer配置

security.protocol=SSL

ssl.truststore.location=/home/admin/ssl/client.truststore.jks

ssl.truststore.password=XXXXXX

二、python客户端配置

首先需要生产python客户端可用的证书格式:

keytool -list -rfc -keystore server.keystore.jks

keytool -exportcert -alias localhost -keystore server.keystore.jks -rfc -file certificate.pem

keytool -exportcert -alias CARoot -keystore server.keystore.jks -rfc -file CARoot.pem

本例使用的是python的客户端:kafka-python==1.4.2, kakfa由于版本是v1.1.0,所以参数设置的时候需要加入 api_version = (1, 1)

ssl_certfile = "certificate.pem"

ssl_cafile = "CARoot.pem"

producer = KafkaProducer(bootstrap_servers=address, value_serializer=lambda v: json.dumps(v).encode('utf-8'), retries=retries, api_version = (1, 1), request_timeout_ms=1000, ssl_check_hostname=False, ssl_certfile=ssl_certfile, security_protocol="SSL", ssl_cafile=ssl_cafile)

成功

kafka python客户端连接风暴_kafka配置单向ssl加密,以及加密后python客户端访问方式(kafka v1.1.0)...相关推荐

  1. 二进制安装kubernetes1.14.1-pod配置清单之客户端访问方式03

    查看pod配置清单 参考: (https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.14/) [root@k8s-maste ...

  2. 【数据库】使用PLSQL工具时,ORACLE客户端连接串的配置

    如果要使用PLSQL工具来连接数据库,首先要安装ORACLE客户端,然后去配置连接串. 你的客户端的安装目录下oracle\product\10.2.0\db_1\NETWORK\ADMIN 文件夹里 ...

  3. 客户端连接服务器,配置出错“连接超时”或者“无监听程序”解决方法

    这两天在进行Oracle的客户端配置,服务器OS为Windows XP 64,客户端OS为Win7 64,oracle版本为11.2. 先说下服务器端自己的疑惑,由于自己是新手,很多都不明白是怎么个回 ...

  4. 远程客户端连接linux,远程控制服务(SSH)之Linux环境下客户端与服务端的远程连接...

    本篇blog将讲述sshd服务提供的两种安全验证的方法,并且通过这两种方法进行两台linux虚拟机之间的远程登陆. 准备工作: (1)准备两台安装有linux系统的虚拟机,虚拟机软件采用vmware: ...

  5. Python与数据库[2] - 关系对象映射/ORM[4] - sqlalchemy 的显式 ORM 访问方式

    sqlalchemy 的显式 ORM 访问方式 对于sqlalchemy,可以利用一种显式的ORM方式进行访问,这种方式无需依赖声明层,而是显式地进行操作.还有一种访问方式为声明层 ORM 访问方式. ...

  6. zookeeper专题:zookeeper集群搭建和客户端连接

    文章目录 1. Zookeeper 集群模式介绍 2. zookeeper 集群搭建 3. 使用curate客户端连接zookeeper集群 1. Zookeeper 集群模式介绍 Zookeeper ...

  7. 存储学习之--StarWind虚拟存储配置和Linux客户端连接

    存储学习之--StarWind虚拟存储配置和Linux客户端连接      在Windows 2008 Server上安装好StarWind后,就可以对它进行配置了 一.配置基本的StarWind 1 ...

  8. 解决ufw下pptp客户端连接问题

    解决ufw下pptp客户端连接问题 解决ubuntu在启动ufw的情况下pptp客户端无法链接的问题. 修改/etc/ufw/before.rules 在COMMIT之前添加如下内容: -A ufw- ...

  9. python下载_安装_配置_以及第一行python程序---python工作笔记009

    然后我们再来看python的下载安装和配置 感觉在所有编程语言中,Python的 安装是最简单的 www.python.org进入 去看到有个downloads 然后,选择下载windows版的 然后 ...

最新文章

  1. 用createinstallmedia创建可恢复的OSX安装DMG
  2. 不同虚拟局域网Vlan配置DHCP服务器
  3. SSH整合方案二(不带hibernate.cfg.xml)
  4. java 本年第一天_JAVA获取本周 本月 本年 第一天和最后一天
  5. OpenShift 4 Tekton (2) - OpenShift Pipeline入门-用Pipeline部署应用
  6. 主动土工围栏行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  7. 计算机数字雨代码,cmd命令数字雨教程
  8. u盘启动怎么修复计算机,电脑店u盘启动winpe如何修复系统引导
  9. JDK自带javap命令反编译class文件和Jad反编译class文件(推荐使用jad)
  10. Hi3516A开发--电阻分压阻值计算
  11. 【Linux operation 18】 - SUSE 12 SP5在线安装Docker
  12. python出入库_基于Python对Excel数据入库的处理
  13. wamp5工具安装介绍
  14. Appro DM36x IPNC 4.0 开发环境配置
  15. 流程图 自定义函数_让客户信任感倍增?酷家乐推出“自定义清单”功能,为精准报价加码!...
  16. java 从set取值_怎样从java集合类set中取出数据?
  17. PHP GD库 生成图片水印
  18. NTC电阻短路(高温)电池未停止充电分析
  19. 从“策略模式”聊聊“设计模式”有多重要?
  20. Python中turtle画n层m个不同方向的圆,送你一朵小黄花

热门文章

  1. 如何利用开源风控系统(星云)防止撞库?
  2. 90后创业,是无奈之举还是不甘现状?创业必看!
  3. 回顾:网络编程(待排版,知识点看情况补充
  4. 2019年网页设计趋势前瞻,先睹为快
  5. anaconda下载python很慢_win10用anaconda安装pytorch下载速度慢的问题解决
  6. Linux添加新硬盘和扩容已有硬盘
  7. 响应式高端网站模板源码图库素材资源下载平台源码
  8. 我做外包的血与泪,也是很多同行的缩影,引以为鉴
  9. 可口可乐卖得那么好,为什么还要继续打广告?
  10. 对于首页等每天有大量的人访问,对数据库造成很大的访问压力,甚至是瘫痪。那如何解决呢?