kafka學習筆記4-TLS加密 —— 筑夢之路

1. 準備證書文件

mkdir /opt/kafka/pkicd !$# 生成CA證書
openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout ca.key -out ca.crt -subj "/CN=Kafka-CA"# 生成私鑰
openssl genrsa -out kafka.key 4096# 生成證書簽名請求 (CSR)
openssl req -new -key kafka.key -out kafka.csr -subj "/CN=kafka-cluster"# 創建包含所有節點的SAN 配置文件
cat > san.cnf << EOF
[ req ]
distinguished_name = req_distinguished_name
req_extensions = req_ext
prompt = no[ req_distinguished_name ]
CN = kafka-cluster[ req_ext ]
keyUsage = critical, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName = @alt_names[ alt_names ]
# 節點主機名與ip
DNS.1 = kafka-1
DNS.2 = kafka-2
DNS.3 = kafka-3
IP.1 = 192.168.100.131
IP.2 = 192.168.100.132
IP.3 = 192.168.100.133
EOF# 簽署證書
openssl x509 -req -in kafka.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out kafka.crt \
-days 3650 -extfile san.cnf -extensions req_ext# 檢查驗證證書
openssl x509 -in kafka.crt -text -noout | grep -A 1 "Subject Alternative Name"ls -ltotal 28
-rw-r--r-- 1 root root 1805 Jan 15 15:54 ca.crt
-rw------- 1 root root 3272 Jan 15 15:54 ca.key
-rw-r--r-- 1 root root   41 Jan 15 15:54 ca.srl
-rw-r--r-- 1 root root 1777 Jan 15 15:54 kafka.crt
-rw-r--r-- 1 root root 1590 Jan 15 15:49 kafka.csr
-rw------- 1 root root 3247 Jan 15 15:49 kafka.key
-rw-r--r-- 1 root root  259 Jan 15 15:51 san.cnf

2.?創建 Keystore

# 將證書和私鑰轉換為PKCS12文件openssl pkcs12 -export -in kafka.crt -inkey kafka.key -out kafka.p12 -name kafka-cert -CAfile ca.crt -caname root -passout pass:123.com# 使用 keytool 將 kafka.p12 文件導入到 Keystorekeytool -importkeystore \-deststorepass 123.com \-destkeypass 123.com\-destkeystore kafka.keystore.jks \-srckeystore kafka.p12 \-srcstoretype PKCS12 \-srcstorepass 123.com \-alias kafka-cert

3.?創建 Truststore

# 使用keytool創建Truststore并導入CA證書keytool -import \-file ca.crt \-keystore kafka.truststore.jks \-storepass 123.com \-alias root

4. 分發文件

將kafka.truststore.jks 和kafka.keystore.jks 文件分發到其他 kafka 節點

scp kafka.truststore.jks 192.168.100.132:/opt/kafka/pki/scp kafka.keystore.jks  192.168.100.132:/opt/kafka/pki/scp kafka.truststore.jks 192.168.100.133:/opt/kafka/pki/scp kafka.keystore.jks  192.168.100.133:/opt/kafka/pki/

?5.?Kafka服務端配置 TLS

# 在Kafka KRaft模式下的server.properties文件中,添加以下配置vim /opt/kafka/config/kraft/server.properties# 修改SSL配置
listeners=SSL://:9092,CONTROLLER://:9093
inter.broker.listener.name=SSL
advertised.listeners=SSL://192.168.100.131:9092,CONTROLLER://192.168.100.131:9093# 新增Keystore配置
ssl.keystore.location=/opt/kafka/pki/kafka.keystore.jks
ssl.keystore.password=123.com
ssl.key.password=123.com
# 新增Truststore配置
ssl.truststore.location=/opt/kafka/pki/kafka.truststore.jks
ssl.truststore.password=123.com
# 客戶端連接時啟用ssl
ssl.client.auth=required# 重啟
systemctl restart kafka

6.?客戶端配置 TLS

# 創建客戶端配置文件,指定證書信息admin.properties文件內容如下cat > /opt/kafka/config/admin.properties << EOF
security.protocol=SSL
ssl.keystore.location=/opt/kafka/pki/kafka.keystore.jks
ssl.keystore.password=123.com
ssl.truststore.location=/opt/kafka/pki/kafka.truststore.jks
ssl.truststore.password=123.com
ssl.endpoint.identification.algorithm=
ssl.key.password=123.com
EOF# 連接測試## 查看節點信息bin/kafka-broker-api-versions.sh --bootstrap-server 192.168.100.131:9092 --command-config /opt/kafka/config/admin.properties ## 查看topic信息bin/kafka-topics.sh --describe --bootstrap-server 192.168.100.131:9092 --command-config /opt/kafka/config/admin.properties# 生產者生產消息bin/kafka-console-producer.sh --bootstrap-server 192.168.100.131:9092 --topic test --producer.config /opt/kafka/config/admin.properties
>hello boy# 消費者消費消息bin/kafka-console-consumer.sh --bootstrap-server 192.168.10.31:9092 --topic test --from-beginning --consumer.config /opt/kafka/config/admin.propertieshello boy

7.?kafka-ui 配置 TLS

# 修改kafka-ui配置文件cat > config.yml << EOF
kafka:clusters:-name: kafka-clusterbootstrapServers: 192.168.100.131:9092,192.168.100.132:9092,192.168.100.133:9092metrics:port: 9997type: JMXproperties:security:protocol: SSLssl:keystore:location: /opt/kafka/pki/kafka.keystore.jkspassword: 123.comssl_endpoint_identification_algorithm: ''ssl:truststorelocation: /opt/kafka/pki/kafka.truststore.jkstruststorepassword: 123.com
EOF# 重啟systemctl restart kafka-ui

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/66881.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66881.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66881.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Node.js NativeAddon 構建工具:node-gyp 安裝與配置完全指南

Node.js NativeAddon 構建工具&#xff1a;node-gyp 安裝與配置完全指南 node-gyp Node.js native addon build tool [這里是圖片001] 項目地址: https://gitcode.com/gh_mirrors/no/node-gyp 項目基礎介紹及主要編程語言 Node.js NativeAddon 構建工具&#xff08;node-gyp…

SpringCloud微服務Gateway網關簡單集成Sentinel

Sentinel是阿里巴巴開源的一款面向分布式服務架構的輕量級流量控制、熔斷降級組件。Sentinel以流量為切入點&#xff0c;從流量控制、熔斷降級、系統負載保護等多個維度來幫助保護服務的穩定性。 官方文檔&#xff1a;https://sentinelguard.io/zh-cn/docs/introduction.html …

vscode環境中用倉頡語言開發時調出覆蓋率的方法

在vscode中倉頡語言想得到在idea中利用junit和jacoco的覆蓋率&#xff0c;需要如下幾個步驟&#xff1a; 1.在vscode中搭建倉頡語言開發環境&#xff1b; 2.在源代碼中右鍵運行[cangjie]coverage. 思路1&#xff1a;編寫了測試代碼的情況&#xff08;包管理工具&#xff09; …

pikachu靶場-敏感信息泄露概述

敏感信息泄露概述 由于后臺人員的疏忽或者不當的設計&#xff0c;導致不應該被前端用戶看到的數據被輕易的訪問到。 比如&#xff1a; ---通過訪問url下的目錄&#xff0c;可以直接列出目錄下的文件列表; ---輸入錯誤的url參數后報錯信息里面包含操作系統、中間件、開發語言的版…

安卓動態設置Unity圖形API

命令行方式 Unity圖像api設置為自動,安卓動態設置Vulkan、OpenGLES Unity設置 安卓設置 創建自定義活動并將其設置為應用程序入口點。 在自定義活動中,覆蓋字符串UnityPlayerActivity。updateunitycommandlineararguments (String cmdLine)方法。 在該方法中,將cmdLine…

CICD集合(五):Jenkins+Git+Allure實戰(自動化測試)

CICD集合(五):Jenkins+Git+Allure實戰(自動化測試) 前提: 已安裝好Jenkins安裝好git,maven,allure報告插件配置好Git,Maven,allure參考:CICD集合(一至四) https://blog.csdn.net/fen_fen/article/details/131476093 https://blog.csdn.net/fen_fen/article/details/1213…

時間類型數據處理:基于Python的datetime庫和pandas庫

一、datetime庫常用方法 日期的數據類型主要有兩種&#xff1a;一是包含時間的datetime類型&#xff0c;二是不包含時間的date類型。這里的時間指具體的時、分、秒、甚至毫秒。 1、自定義日期、時間、獲取本地時間、獲取本地日期、獲取年份、月份、月號、小時、分鐘、秒、星期…

低代碼可視化-轉盤小游戲可視化-代碼生成器

轉盤小程序是一種互動工具&#xff0c;它通過模擬真實的轉盤抽獎或決策體驗&#xff0c;為用戶提供了一種有趣且公平的選擇方式。以下是對轉盤小程序的詳細介紹&#xff1a; 轉盤小程序的應用場景 日常決策&#xff1a;轉盤小程序可以幫助用戶解決日常生活中的選擇困難問題&a…

MongoDB文檔查詢

一、實驗目的 1. 理解MongoDB文檔數據庫的基本概念和特性。 2. 掌握在MongoDB中創建集合和插入文檔數據的方法。 3. 學習使用MongoDB進行文檔查詢操作&#xff0c;包括查詢、過濾和排序等。 二、實驗環境準備 1. JAVA環境準備&#xff1a;確保Java Development Kit (J…

速通Docker === 使用最佳實踐總結

目錄 主要使用步驟 1. 命令 2. 網絡 3. 存儲 卷存儲&#xff08;Volumes&#xff09; 目錄掛載&#xff08;Bind Mounts&#xff09; 比較 4. 環境變量 5. 端口 示例&#xff1a;啟動 MySQL 容器 解釋&#xff1a; 總結 Docker 是一個開源的應用容器引擎&#xff0…

Postgresql源碼(140)理解PG的編譯流程(make、Makefile、Makefile.global.in)

PG16 PG中使用的makefile看起來代碼比較多&#xff0c;但是實際邏輯比較簡單&#xff0c;這里做一些抽象總結。 總結 Makefile.global.in的$(recurse)宏自動生成了target&#xff0c;可以方便的進入內存目錄進行編譯。 all: all-common-recurse all-common-recurse: submak…

c語言中的數組(上)

數組的概念 數組是?組相同類型元素的集合&#xff1b; 數組中存放的是1個或者多個數據&#xff0c;但是數組元素個數不能為0。 數組中存放的多個數據&#xff0c;類型是相同的。 數組分為?維數組和多維數組&#xff0c;多維數組?般?較多?的是?維數組。 數組創建 在C語言…

戴爾電腦設置u盤啟動_戴爾電腦設置u盤啟動多種方法

最近有很多網友問&#xff0c;戴爾臺式機怎么設置u盤啟動&#xff0c;特別是近兩年的戴爾臺式機比較復雜&#xff0c;有些網友不知道怎么設置&#xff0c;其實設置u盤啟動有兩種方法&#xff0c;下面小編教大家戴爾電腦設置u盤啟動方法。 戴爾電腦設置u盤啟動方法一、戴爾進入b…

2【選修】再探寶可夢、數碼寶貝分類器

1 Pokemon/Digimon Classifier 1.1 Observation 1.2 Function 1.3 Loss 1.4 Training Examples – OOPS what do we want? 2 What is the probability of sampling bad D t r a i n D_{train} Dtrain? 2.1 Theroy – Larger N N N smaller ∣ H ∣ |H| ∣H∣ 2.2…

微信小程序中實現背景圖片完全覆蓋顯示,可以通過設置CSS樣式來實現

wxml頁面代碼 <view class"beijing"></view>wxss樣式代碼 /* pages/beiJing/beiJing.wxss */ .beijing {background-image: url("https://www.qipa250.com/qipa.jpg");/* 定位&#xff1a;絕對定位 */position: absolute;/* 上下左右都定位到…

Mongodb 慢查詢日志分析 - 1

Mongodb 慢查詢日志分析 使用 mloginfo 處理過的日志會在控制臺輸出, 顯示還是比較友好的. 但是如果內容較大, 就不方便查看了, 如果可以導入到 excel 就比較方便篩選/排序. 但是 mloginfo 并沒有提供生成到 excel 的功能. 可以通過一個 python 腳本輔助生成: import pandas…

ASP.NET Core 6.0 如何處理丟失的 Startup.cs 文件

介紹 .NET 6.0 已經發布&#xff0c;ASP.NET Core 6.0 也已發布。其中有不少變化讓很多人感到困惑。例如&#xff0c;“誰動了我的奶酪”&#xff0c;它在哪里Startup.cs&#xff1f;在這篇文章中&#xff0c;我將深入研究這個問題&#xff0c;看看它移動到了哪里以及其他變化。…

歐幾里得算法求最小公倍數和最大公約數

一.最大公約數 gcd(a,b)gcd(b,a%b) 遞歸式,當且僅當b0&#xff0c;易得0和a的公約數為a.(可作為遞歸的出口) 證明&#xff1a; int gcd(int a, int b) {if (b 0) return a;else return gcd(b, a % b); } 二.最小公倍數 給定整數a b&#xff0c;求a b的最小公倍數 有圖可知…

文檔解析:PDF里的復雜表格、少線表格如何還原?

PDF中的復雜表格或少線表格還原通常需要借助專業的工具或在線服務&#xff0c;以下是一些可行的方法&#xff1a; 方法一&#xff1a;使用在線PDF轉換工具 方法二&#xff1a;使用桌面PDF編輯軟件 方法三&#xff1a;通過OCR技術提取表格 方法四&#xff1a;手動重建表格 …

局域網中 Windows 與 Mac 互相遠程連接的最佳方案

由于工作需要&#xff0c;經常需要遠程連接或登錄到幾臺不同的工作用機上進行操作。 下面基于免費、高體驗等基本訴求&#xff0c;簡要記錄幾種不同場景下的實踐方案選擇&#xff0c;僅供參考。如您有更簡單且更優的方案&#xff0c;歡迎一起探討。 1 遠程桌面連接的幾種不同…