Kafka实战:集群SSL加密认证和配置(最新版kafka-2.7.0)

这篇具有很好参考价值的文章主要介绍了Kafka实战:集群SSL加密认证和配置(最新版kafka-2.7.0)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Kafka实战:集群SSL加密认证和配置(最新版kafka-2.7.0)

前言概述

  1. JavaSSL认证

​ SSL(Secure Socket Layer安全套接层),及其继任者传输层安全(Transport ;ayer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

  1. Kerberos认证 + ACL鉴权

Kerberos是一种网络认证协议,其设计目标是通过密钥系统为客户机/服务器应用程序提供强大的认证服务。ACL则是在Kerberos的基础上进行的鉴权措施,一般Kerberos认证就够使用了。

SSL证书生成

Apache的Kafka允许client通过SSL连接。SSL默认情况下被禁止,但可以根据需要开启。

可以使用Java的keytool工具来完成,Keytool 是一个Java 数据证书的管理工具 ,Keytool 将密钥(key)和证书(certificates)存在一个称为keystore的文件中 在keystore里,包含两种数据:

1). 密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)

2). 可信任的证书实体(trusted certificate entries)——只包含公钥

keytool相关指令说明:

名称 说明
-alias 别名,可自定义,这里叫kafka240
-keystore 指定密钥库的名称(就像数据库一样的证书库,可以有很多个证书,cacerts这个文件是jre自带的, 也可以使用其它文件名字,如果没有这个文件名字,它会创建这样一个)
-storepass 指定密钥库的密码
-keypass 指定别名条目的密码
-list 显示密钥库中的证书信息
-export 将别名指定的证书导出到文件
-file 参数指定导出到文件的文件名
-import 将已签名数字证书导入密钥库
-keypasswd 修改密钥库中指定条目口令
-dname 指定证书拥有者信息。其中,CN=名字与姓氏/域名,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码
-keyalg 指定密钥的算法
-validity 指定创建的证书有效期多少天
-keysize 指定密钥长度
  1. Kafka集群的每个broker节点生成SSL密钥和证书(每个broker节执行)

每个节点执行一次后,集群中的每一台机器都有一个公私密钥对、一个标识该机器的证书,注意这里是所有的broker节点都要执行这个命令。

keytool -keystore server.keystore.jks -alias kafka240 -validity 365 -genkey

执行命令时,输入first and last name,这里需要输入你的主机名,确保公用名(CN)与服务器的完全限定域名(FQDN)精确相匹配。

client拿CN与DNS域名进行比较以确保它确实连接到所需的服务器,而不是恶意的服务器。

  1. 生成CA认证证书(为了保证整个证书的安全性,需要使用CA进行证书的签名保证)

虽然第一步生成了证书,但是证书是无标记的,意味着攻击者可以通过创建相同的证书假装任何机器。认证机构(CA)负责签发证书。

认证机构就像发行护照的政府,政府会对每张护照盖章,使得护照很难被伪造。其它,政府核实印章,以保证此护照是真实的。

类似的,CA签署证书,密码保证签署的证书在计算上很难被伪造。因此,只要CA是一个真正值得信赖的权威机构,客户就可以很高的保证他们正在连接到真实的机器。

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

这个命令,可随机在任一broker节点执行,只需要执行一次,执行完成后生成了两个文件cat-key、ca-cert,将这两个文件分别拷贝到所有broker节点上,后面需要用到。

  1. 通过CA证书创建一个客户端端信任证书(每个broker节点执行)
keytool -keystore client.truststore.jks -alias CAKafka240 -import -file ca-cert
  1. 通过CA证书创建一个服务端器端信任证书(每个broker节点执行)
keytool -keystore server.truststore.jks -alias CAKafka240 -import -file ca-cert

下面就是为证书签名

  1. 从密钥库导出证书服务器端证书cert-file(每个broker节点执行)
keytool -keystore server.keystore.jks -alias kafka240 -certreq -file cert-file
  1. 用CA给服务器端证书进行签名处理(每个broker节点执行)
openssl x509 -req -CA ca-cert -CAkey ca-key -in cert-file -out cert-signed -days 365 -CAcreateserial -passin pass:123456
  1. 将CA证书导入到服务器端keystore(每个broker节点执行)
keytool -keystore server.keystore.jks -alias CAKafka240 -import -file ca-cert
  1. 将已签名的服务器证书导入到服务器keystore(每个broker节点执行)
keytool -keystore server.keystore.jks -alias kafka240 -import -file cert-signed

Kafka集群配置

listeners=SSL://host.name:portssl.keystore.location=/var/private/ssl/server.keystore.jksssl.keystore.password=test1234
ssl.key.password=test1234
        ssl.truststore.location=/var/private/ssl/server.truststore.jks
            ssl.truststore.password=test1234ssl.client.auth=required
security.inter.broker.protocol=SSL
 
 

客户端连接配置

security.protocol=SSL
ssl.truststore.location=/var/private/ssl/client.truststore.jks
ssl.truststore.password=test1234
ssl.keystore.location=/var/private/ssl/client.keystore.jks
            ssl.keystore.password=test1234
            ssl.key.password=test1234

测试用例文章来源地址https://www.toymoban.com/news/detail-744767.html

kafka-console-producer.sh --broker-list localhost:9093 --topic test --producer.config client-ssl.properties
            kafka-console-consumer.sh --bootstrap-server localhost:9093 --topic test --consumer.config client-ssl.properties

到了这里,关于Kafka实战:集群SSL加密认证和配置(最新版kafka-2.7.0)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • elasticsearch配置xpack集群间加密认证时报错:

    通过证书配置集群间节点通信认证: 报错信息: 各种尝试:授权文件777、把文件放在config/certs下、放在/opt/elaticsearch/certs下,都想不通,然后猜测可能是路径问题,于是不写绝对路径,指定相对路径,看看es从那个目录下获取,改了之后包如下错误,发现是从/etc/elasticsearch

    2024年02月13日
    浏览(31)
  • kafka2.x版本配置SSL进行加密和身份验证

    背景:找了一圈资料,都是东讲讲西讲讲,最后我还没搞好,最终决定参考官网说明。 官网指导手册地址:Apache Kafka 需要预备的知识,keytool和openssl 关于keytool的参考:keytool的使用-CSDN博客 关于openssl的参考:openssl常用命令大全_openssl命令参数大全-CSDN博客 先只看SSL安全机制

    2024年03月22日
    浏览(29)
  • Kafka单机到集群- 自动化- SSL以及全部配置文件 作者精选

    本文实现kafka集群的配置和启动过程。并将脚本自动化,使得通用性、独立性更强。 用途 参考资料 kafka官方文档:包含安装部署、配置项、api使用等详细信息 附件: Kafka并不难学!:入门、进阶、商业实战 (邓杰) :包含kafka入门和linux快捷操作等系统化认识的内容。 名词 文

    2024年04月13日
    浏览(34)
  • 抖音最新版抓包方案,修改so绕过ssl

    dy过ssl charles抓包 及xposed的justtrustme安装到手机上只能过系统的ssl。 抖音写了一个非系统的ssl所以需要反编译so来处理。 第一步,charles 我用的是magisk手机,先重charles把证书下载到pc端 在通过adb push 传入到sdcard 通过手机安装证书[wifi 的高级选项中,安装证书] 把用户证书通过

    2024年02月03日
    浏览(45)
  • 某音26.6.0最新版抓包方案,修改so绕过ssl

    先上成品图,成品下载放到最后面   下面说下23.3的解决方案 可以参考 dy过ssl charles抓包 及xposed的justtrustme安装到手机上只能过系统的ssl。 抖音写了一个非系统的ssl所以需要反编译so来处理。 第一步,charles 我用的是magisk手机,先重charles把证书下载到pc端 在通过adb push 传入到

    2024年02月03日
    浏览(79)
  • 抖音极速版 最新版抓包方案,修改so绕过ssl

    主要过程是 点我 和我上篇基本上是一样的 包名: com.ss.android.ugc.aweme.lite so路径 /data/data/com.ss.android.ugc.aweme.lite/lib/libsscronet.so 替换so 看这个文件夹下应该是没有文件的(A) /data/data/com.ss.android.ugc.aweme.lite/app_librarian/25.0.0.6569827324/libsscronet.so 删除 /data/data/com.ss.android.ugc.aweme.l

    2024年02月11日
    浏览(93)
  • K8S认证工程师(CKA)考试(最新版,实测可靠)

    k8s的全部考试答案,亲测可靠,博主CKA,CKS已过,欢迎交流。(求个关注吧) 1、权限控制 RBAC 设置配置环境: [candidate@node-1] $ kubectl config use-context k8s Context 为部署流水线创建一个新的 ClusterRole 并将其绑定到范围为特定的 namespace 的特定 ServiceAccount 。 Task 创建一个名为 deploy

    2024年04月25日
    浏览(36)
  • Kafka快速入门(最新版3.6.0)

    1.1 什么是MQ Message Queue(MQ),消息队列中间件。很多⼈都说:MQ 通过将消息的发送和接收分离来实现应⽤程序的异步和解偶,这个给⼈的直觉是——MQ 是异步的,⽤来解耦的,但是这个只是 MQ 的效果⽽不是⽬的。 MQ 真正的⽬的是 为了通讯 ,屏蔽底层复杂的通讯协议,定义

    2024年02月07日
    浏览(31)
  • 记一次.net加密神器 Eazfuscator.NET 2023.2 最新版 使用尝试

    Eazfuscator.NET 是用于.NET平台的工业级混淆器。 Eazfuscator.NET 提供的混淆保护了软件中根深蒂固的知识产权,提高了商业盈利能力,并保持了竞争优势。 Eazfuscator.NET 很简单,就像 1-2-3 一样: 它可以保护您的代码, 而不会破坏它 -  即使在最复杂的情况下  - 我们已经处理了它

    2024年02月11日
    浏览(33)
  • K8S认证安全工程师(CKS)考试(最新版,实测可靠)

    k8s的全部考试答案,亲测可靠,博主CKA,CKS已过,欢迎交流。(求个关注吧) 1、kube-bench 修复不安全项 Context 针对 kubeadm 创建的 cluster 运行 CIS 基准测试工具时,发现了多个必须立即解决的问题。 Task 通过配置修复所有问题并重新启动受影响的组件以确保新的设置生效。 修复

    2024年04月13日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包