Kafka-Exporter 9308端口启用TLS认证的完整指南

#作者:张桐瑞

文章目录

  • 1 方案描述
  • 2 涉及版本
  • 3 使用CA自签证书
    • 3.1一键生成证书脚本
      • 3.1.1证书脚本
      • 3.1.2执行结果
    • 3.2分步自建证书过程
      • 3.2.1生成CA私钥
      • 3.2.2生成CA自签名证书
      • 3.2.3生成服务器私钥和证书申请文件CRS
    • 3.3最终的文件列表
  • 4 Exporter启动命令
    • 4.1参数说明
  • 5 Prometheus.yml编写
    • 5.1配置说明
  • 6 回滚方案
    • 6.1Kafka-Exporter参数回滚
    • 6.2Prometheus配置回滚

1 方案描述

Kafka Exporter使用TLS进行Https认证,确保数据传输的安全性、完整性和保密性。该方案核心在于利用证书来实现服务器与客户端之间的双向身份验证。

2 涉及版本

Kafka-exporter在1.4.2版本后可配置TLS进行Https认证。

3 使用CA自签证书

(本示例只说明自签证书过程,具体请使用符合安全的证书)

3.1一键生成证书脚本

可以直接使用如下脚本一键生成证书脚本,根据3.1.2执行结果进行操作。

3.1.1证书脚本

#!/bin/bash
read -p "Enter your domain or ip [www.example.com/10.10.49.172]: " INPUT
echo "1. Create ca private key..."
openssl genrsa -des3 -out selfca.key 2048
echo "2. Create ca root certificate..."
openssl req -new -x509 -days 3650 -key selfca.key -subj "/C=CN/ST=BJ/L=BJ/O=MyRootCA/OU=MyCA/CN=CA" -out selfca.crt
echo "3. Create server key and certificate signing request..."
openssl req -newkey rsa:2048 -nodes -keyout server.key -subj "/C=CN/ST=BJ/L=BJ/O=MyRootServer/OU=MyServer/CN=$INPUT" -out server.csr
echo "4. Sign SSL certificate..."
openssl x509 -req -extfile <(printf "subjectAltName=IP:$INPUT") -days 3650 -in server.csr -CA selfca.crt -CAkey selfca.key -CAcreateserial -out server.crt
echo "5. Create end, next work..."
echo "Copy server.crt and server.key to your server machine"

3.1.2执行结果

$ ./onekeyssl.sh
Enter your domain or ip [www.example.com/10.10.49.172]: 10.10.19.1
1. Create ca private key...
Generating RSA private key, 2048 bit long modulus (2 primes)
..................................................+++++
.....................................+++++
e is 65537 (0x010001)
Enter pass phrase for selfca.key:【输入自定义密码】
Verifying - Enter pass phrase for selfca.key:【重复密码】
2. Create ca root certificate...
Enter pass phrase for selfca.key:【重复密码】
3. Create server key and certificate signing request...
Generating a RSA private key
.............................................................+++++
..........+++++
writing new private key to 'server.key'
-----
4. Sign SSL certificate...
Signature ok
subject=C = CN, ST = BJ, L = BJ, O = MyRootServer, OU = MyServer, CN = 10.10.19.1
Getting CA Private Key
Enter pass phrase for selfca.key:【重复密码】
5. Create end, next work...
Copy server.crt and server.key to your server machine

3.2分步自建证书过程

3.2.1生成CA私钥

# openssl genrsa -des3 -out selfca.key 2048 

运行命令后需要输入一个自定义密码两次,以后每次使用这个私钥都要输入密码
3.2.1.1说明:
这条命令使用 OpenSSL 工具生成一个带有Triple-DES(3DES)加密的密码保护的2048位RSA私钥文件,各个参数的含义如下:

  • openssl: OpenSSL 工具的命令行执行器。
  • genrsa: 生成RSA密钥的命令。
  • -des3: 使用Triple-DES算法对生成的私钥进行加密,这会在生成私钥时要求你设置一个密码,以便在每次使用私钥时都需要提供密码。
  • -out selfca.key: 指定生成的私钥的输出文件名为 selfca.key,私钥文件将被保存在当前工作目录中。
  • 2048: 指定生成的RSA私钥的位数为2048位,这是一种常见的安全密钥长度。

3.2.2生成CA自签名证书

openssl req -new -x509 -days 3650 -key selfca.key -subj "/C=CN/ST=BJ/L=BJ/O=MyRootCA/OU=MyCA/CN=CA" -out selfca.crt

3.2.2.1说明

  • openssl req: 这是 OpenSSL 工具中用于处理证书签署请求(CSR)的命令。
  • -new: 表示创建新的 CSR。
  • -x509: 表示生成自签名的 X.509 证书,而不是生成 CSR。
  • -days 3650: 设置证书的有效期为 3650 天(10 年)。
  • -key selfca.key: 指定用于生成证书的私钥文件为 selfca.key。
  • -subj “/C=CN/ST=BJ/L=BJ/O=MyRootCA/OU=MyCA/CN=CA”: 设置证书主题(Subject)的信息。这里使用了简化的 Distinguished Name (DN),包括了国家(C=CN)、省/州(ST=BJ)、城市(L=BJ)、组织(O=MyRootCA)、组织单位(OU=MyCA)、通用名称(CN=CA)等信息。
  • -out selfca.crt: 指定生成的证书文件的输出路径和文件名,这里为 selfca.crt。

3.2.3生成服务器私钥和证书申请文件CRS

openssl req -newkey rsa:2048 -nodes -keyout server.key -subj "/C=CN/ST=BJ/L=BJ/O=MyRootServer/OU=MyServer/CN=10.10.49.172" -out server.csr

3.2.3.1说明

openssl req: 这是 OpenSSL 工具中用于处理证书签署请求(CSR)的命令。

  • -newkey rsa:2048: 创建一个新的 RSA 密钥对,其中包括一个 2048 位的 RSA 私钥和相应的公钥。
  • -nodes: 生成的私钥不使用密码进行加密。这意味着私钥文件 server.key 将不需要密码才能访问。
  • -keyout server.key: 指定生成的私钥文件的输出路径和文件名,这里为 server.key。
  • -subj “/C=CN/ST=BJ/L=BJ/O=MyRootServer/OU=MyServer/CN=10.10.49.172”: 设置证书主题(Subject)的信息。这里使用了简化的 Distinguished Name (DN),包括了国家(C=CN)、省/州(ST=BJ)、城市(L=BJ)、组织(O=MyRootServer)、组织单位(OU=MyServer)、通用名称(CN=10.10.49.172)等信息。通用名称(CN)通常用于指定服务器的主机名或 IP 地址。
  • -out server.csr: 指定生成的证书签署请求文件的输出路径和文件名,这里为 server.csr。
    3.2.4使用CA根证书签名SSL证书
    $ openssl x509 -req -extfile <(printf “subjectAltName=IP:10.10.49.172”) -days 3650 -in server.csr -CA selfca.crt -CAkey selfca.key -CAcreateserial -out server.crt
    openssl x509: 这是 OpenSSL 工具中用于处理 X.509 证书的命令。
    -req: 表示输入的文件是证书签署请求(CSR)。
    -extfile <(printf “subjectAltName=IP:10.10.49.172[,DNS:<YOUR_DOMAIN>,…]”): 使用扩展文件,该文件包含了额外的证书扩展信息。在这里,subjectAltName 扩展用于指定主体的备用名称(Subject Alternative Name),这里指定了 IP 地址 10.10.49.172。你也可以在方括号中添加其他主机名或 IP 地址,用逗号分隔。
    -days 3650: 设置生成的证书的有效期为 3650 天(10 年)。
    -in server.csr: 指定输入的证书签署请求文件,这里为 server.csr。
    -CA selfca.crt: 指定用于签署证书的 CA 证书文件,这里为 selfca.crt。
    -CAkey selfca.key: 指定用于签署证书的 CA 私钥文件,这里为 selfca.key。
    -CAcreateserial: 创建一个新的序列号文件,该文件用于跟踪 CA 签署的证书的唯一性。
    -out server.crt: 指定生成的证书文件的输出路径和文件名,这里为 server.crt。
    selfca.key:CA私钥,用于后续签名SSL证书
    selfca.crt:CA根证书,用于后续签名SSL证书,需要加入到操作系统或浏览器的信任列表中

3.3最终的文件列表

server.key:服务器私钥,需要配置到https服务
server.csr:证书签署请求文件,后续没用
server.crt:自签名SSL证书,需要配置到https服务

4 Exporter启动命令

./kafka_exporter  --kafka.server=localhost:9092   --server.tls.key-file=/kafka_path_1/server.key   --server.tls.cert-file=/kafka_path_1/server.crt --server.tls.ca-file=/kafka_path_1/selfca.crt --server.tls.enabled

4.1参数说明

  • –kafka.server #Addresses (host:port) of Kafka server
  • –server.tls.enabled #Enable TLS for web server
  • –server.tls.ca-file #The certificate authority file for the web server
  • –server.tls.cert-file #The certificate file for the web server
  • –server.tls.key-file #The key file for the web server

5 Prometheus.yml编写

…
scrape_configs:- job_name: kafka-1scheme: httpsstatic_configs:- targets:- kafka_ip_1:9308tls_config:insecure_skip_verify: falseca_file: "/kafka_path_1/selfca.crt"- job_name: kafka-2scheme: httpsstatic_configs:- targets:- kafka_ip_2:9308tls_config:insecure_skip_verify: falseca_file: "/kafka_path_2/selfca.crt"- job_name: kafka-3scheme: httpsstatic_configs:- targets:- kafka_ip_3:9308tls_config:insecure_skip_verify: falseca_file: "/kafka_path_3/selfca.crt"
…

5.1配置说明

tls_config: 配置了TLS相关的设置:

  • insecure_skip_verify: false: 设置为false表示在建立TLS连接时会验证服务器的证书链和主机名。
  • ca_file: 指定CA证书文件的路径,这个文件包含了用来验证Kafka Exporter提供的证书的根证书。

6 回滚方案

6.1Kafka-Exporter参数回滚

仍使用原来启动参数来启动kafka-exporter。

6.2Prometheus配置回滚

仍使用原来prometheus配置文件采集指标。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/36902.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WordPress靶场攻略

后台修改模板 修改404.php为一句话木马 访问404.php,验证有没有成功 http://47.122.51.245:8080/wp-content/themes/twentyfifteen/404.php?cmdphpinfo(); 上传主题 创建6.php,写入图中代码 自己随便下载一个主题包&#xff0c;将1.php和主题包压缩在一起&#xff0c;提交上…

JVM常用概念之对象对齐

问题 对象对齐有什么规范吗?对象对齐是8个字节吗? 基础知识 许多硬件实现要求对数据的访问是对齐的&#xff0c;即确保所有 N 字节宽度的访问都在 N 的整数倍的地址上完成。即使对于普通的数据访问没有特别要求&#xff0c;特殊操作&#xff08;特别是原子操作&#xff09…

K8S学习之基础三十七:prometheus监控node资源

Prometheus v2.2.1 ​ 编写yaml文件&#xff0c;包含创建ns、configmap、deployment、service # 创建monitoring空间 vi prometheus-ns.yaml apiVersion: v1 kind: Namespace metadata:name: monitor-sa# 创建SA并绑定权限 kubectl create serviceaccount monitor -n monito…

leetcode127.单词接龙

本题的思路就是将所有可转换的序列相连&#xff0c;构成图&#xff0c;然后选择起始词作为广度优先遍历的起点&#xff0c;那么就能找到转换的最小步骤数 而这里的两个单词是否相连不是真的把他们弄成一张图&#xff0c;而是采用暴力枚举&#xff0c;逐个尝试替换字母&#xf…

Tr0ll2靶机详解

一、主机发现 arp-scan -l靶机ip&#xff1a;192.168.55.164 二、端口扫描、漏洞扫描、目录枚举、指纹识别 2.1端口扫描 nmap --min-rate 10000 -p- 192.168.55.164发现21端口的ftp服务开启 以UDP协议进行扫描 使用参数-sU进行UDP扫描 nmap -sU --min-rate 10000 -p- 19…

Pycharm接入DeepSeek,提升自动化脚本的写作效率

一.效果展示&#xff1a; 二.实施步骤&#xff1a; 1.DeepSeek官网创建API key&#xff1a; 创建成功后&#xff0c;会生成一个API key&#xff1a; 2. PyCharm工具&#xff0c;打开文件->设置->插件&#xff0c;搜索“Continue”&#xff0c;点击安装 3.安装完成后&…

如何在 Node.js 中使用 .env 文件管理环境变量 ?

Node.js 应用程序通常依赖于环境变量来管理敏感信息或配置设置。.env 文件已经成为一种流行的本地管理这些变量的方法&#xff0c;而无需在代码存储库中公开它们。本文将探讨 .env 文件为什么重要&#xff0c;以及如何在 Node.js 应用程序中有效的使用它。 为什么使用 .env 文…

《视觉SLAM十四讲》ch13 设计SLAM系统 相机轨迹实现

前言 相信大家在slam学习中&#xff0c;一定会遇到slam系统的性能评估问题。虽然有EVO这样的开源评估工具&#xff0c;我们也需要自己了解系统生成的trajectory.txt的含义&#xff0c;方便我们更好的理解相机的运行跟踪过程。 项目配置如下&#xff1a; 数据解读&#xff1a; …

软考高级信息系统管理工程师通关100题(21-40)附记忆口诀

文章目录 21.常用存储模式的技术与应用对比22.物联网架构23.云计算服务提供的资源层次24.大数据25.区块链26.人工智能27.虚拟现实VR28.IT治理的内涵29.IT 治理活动30.IT治理本质31.IT审计目标32.IT审计方法33.治理系统设计34.数据管理能力成熟度评估模型35.项目管理原则36.管理…

Redisson 分布式锁原理

加锁原理 # 如果锁不存在 if (redis.call(exists, KEYS[1]) 0) then# hash结构,锁名称为key,线程唯一标识为itemKey&#xff0c;itemValue为一个计数器。支持相同客户端线程可重入,每次加锁计数器1.redis.call(hincrby, KEYS[1], ARGV[2], 1);# 设置过期时间redis.call(pexpi…

主流加固方案深度剖析(梆梆/腾讯/阿里)

1. 加固技术演进与核心原理 1.1 移动端加固技术图谱 graph TD A[代码防护] --> A1[混淆] A --> A2[虚拟化] A --> A3[动态加载] B[数据防护] --> B1[资源加密] B --> B2[协议加密] C[运行时防护] --> C1[反调试] C --> C2[环境检测] C --> C…

大模型之蒸馏模型

蒸馏模型&#xff08;Distilled Model&#xff09;是一种通过知识蒸馏&#xff08;Knowledge Distillation&#xff09;技术训练得到的轻量级模型&#xff0c;其核心思想是将一个复杂的大模型&#xff08;称为教师模型&#xff09;的知识“迁移”到一个更小、更高效的模型&…

iPaaS集成平台中的API可视化编排能给企业带来什么作用

随着企业数字化转型的加速&#xff0c;API&#xff08;应用程序接口&#xff09;作为企业数字化资产的核心组成部分&#xff0c;其数量和复杂性不断增加。为了满足业务敏捷化交付的要求&#xff0c;API可视化编排平台应运而生。谷云科技作为这一领域的领先者&#xff0c;其API可…

演员马晓琳正式加入创星演员出道计划,开启演艺事业新篇章

3月19日&#xff0c;演员马晓琳正式加入“创星演员出道计划”&#xff0c;不仅得到参演都市爱情喜剧《和我结婚吧》角色的机会&#xff0c;还获得文旅精品网剧《醉梦灵州》的出演机会&#xff0c;自此开启全新影视之路。对表演抱有极大热情的马晓琳&#xff0c;相信未来可以凭借…

绿盟科技春招面试

《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39…

双碳战略下的电能质量革命:解码电力系统的健康密码

安科瑞顾强 在能源结构转型的深水区&#xff0c;电能质量正成为制约产业升级的隐形门槛。国家能源局数据显示&#xff0c;我国工业企业每年因电能质量问题造成的经济损失高达3000亿元&#xff0c;而新能源项目因并网质量问题导致的发电效率损失超过15%。在这场关乎能源安全的攻…

Microsoft Edge浏览器的取证分析(基于Chromium)

概述 早在2019年&#xff0c;微软就用Chromium替换了EdgeHTML浏览器引擎&#xff0c;这是微软支持谷歌Chrome浏览器的一个开源项目。通过切换到Chromium&#xff0c;Edge与Chrome浏览器共享一个共同的架构&#xff0c;这意味着用于Chrome浏览器调查的取证技术也适用于Edge。 …

python学智能算法(八)|决策树

【1】引言 前序学习进程中&#xff0c;已经对KNN邻近算法有了探索&#xff0c;相关文章链接为&#xff1a; python学智能算法&#xff08;七&#xff09;|KNN邻近算法-CSDN博客 但KNN邻近算法有一个特点是&#xff1a;它在分类的时候&#xff0c;不能知晓每个类别内事物的具…

RTSP/Onvif安防监控系统EasyNVR级联视频上云系统EasyNVS报错“Login error”的原因排查与解决

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力&#xff0c;能对接入的视频流进行处理与多端分发&#xff0c;包括RTSP、RTMP、HTTP-FLV、W…