各组件证书配置文件yml

news/2025/11/16 22:28:54/文章来源:https://www.cnblogs.com/Chen12138/p/19229221

1. Elasticsearch 配置(elasticsearch.yml

需配置:
  • 自身的实体证书(用于 Transport 层节点间通信、HTTP 层外部客户端通信);
  • CA 根证书(用于验证其他节点 / 组件的实体证书)。
yaml
 
 
# 基本配置
cluster.name: my-elk-cluster
node.name: es-node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch# 网络配置(需与实体证书中的hostname一致)
network.host: 192.168.1.100  # 实际IP/域名
http.port: 9200# 1. Transport层(节点间通信)SSL配置
xpack.security.transport.ssl.enabled: true
# 自身的实体证书(包含公钥+私钥,p12格式)
xpack.security.transport.ssl.keystore.path: certs/es-node.p12
xpack.security.transport.ssl.keystore.password: your_es_keystore_pwd  # 实体证书密码
# CA根证书(用于验证其他节点的实体证书)
xpack.security.transport.ssl.truststore.path: certs/elastic-ca.p12
xpack.security.transport.ssl.truststore.password: your_ca_pwd  # CA证书密码(若设置)# 2. HTTP层(与Kibana/Logstash通信)SSL配置
xpack.security.http.ssl.enabled: true
# 可复用Transport层的实体证书(或单独生成,此处复用)
xpack.security.http.ssl.keystore.path: certs/es-node.p12
xpack.security.http.ssl.keystore.password: your_es_keystore_pwd
# CA根证书(用于验证客户端如Kibana的实体证书,可选,若开启客户端证书验证)
xpack.security.http.ssl.truststore.path: certs/elastic-ca.p12
xpack.security.http.ssl.truststore.password: your_ca_pwd# 启用安全功能(必须开启,否则SSL配置不生效)
xpack.security.enabled: true
 

2. Logstash 配置(/etc/logstash/conf.d/logstash.conf

需配置:
  • 输入端(如 Beats):自身的实体证书(供 Filebeat 验证)+ CA 根证书(验证 Filebeat 的实体证书);
  • 输出端(到 Elasticsearch):CA 根证书(验证 ES 的实体证书)+ 自身的实体证书(供 ES 验证,可选)。
ruby
 
 
# 输入:接收Filebeat数据(需SSL加密)
input {beats {port => 5044# 启用SSLssl => true# 自身的实体证书(公钥,供Filebeat验证Logstash身份)ssl_certificate => "/etc/logstash/certs/logstash-cert.pem"# 自身的实体私钥ssl_key => "/etc/logstash/certs/logstash-key.pem"# CA根证书(用于验证Filebeat的实体证书是否可信)ssl_certificate_authorities => ["/etc/logstash/certs/elastic-ca.pem"]# 强制验证Filebeat的证书(确保来源可信)ssl_verify_mode => "force_peer"}
}# 过滤:按需添加(示例)
filter {grok {match => { "message" => "%{COMBINEDAPACHELOG}" }}
}# 输出:发送到Elasticsearch(需SSL加密)
output {elasticsearch {hosts => ["https://192.168.1.100:9200"]  # ES的HTTPS地址# 访问ES的账号密码(需提前在ES中创建)user => "logstash_writer"password => "logstash_pwd"# 启用SSLssl => true# CA根证书(用于验证ES的实体证书是否可信)cacert => "/etc/logstash/certs/elastic-ca.pem"# 若ES开启了客户端证书验证,需添加Logstash的实体证书(可选)# ssl_certificate => "/etc/logstash/certs/logstash-cert.pem"# ssl_key => "/etc/logstash/certs/logstash-key.pem"}
}
 

3. Filebeat 配置(filebeat.yml

需配置:
  • 输出到 Logstash:自身的实体证书(供 Logstash 验证)+ CA 根证书(验证 Logstash 的实体证书)。
yaml
 
 
# 启用模块(按需开启,如nginx、syslog等)
filebeat.modules:
- module: nginxaccess:enabled: truepaths:- /var/log/nginx/access.log# 输出到Logstash
output.logstash:hosts: ["192.168.1.101:5044"]  # Logstash地址# SSL配置ssl:enabled: true# CA根证书(用于验证Logstash的实体证书是否可信)certificate_authorities: ["/etc/filebeat/certs/elastic-ca.pem"]# 自身的实体证书(供Logstash验证Filebeat身份)certificate: "/etc/filebeat/certs/filebeat-cert.pem"# 自身的实体私钥key: "/etc/filebeat/certs/filebeat-key.pem"# 日志配置(可选)
logging.level: info
logging.to_files: true
logging.files:path: /var/log/filebeat
 

4. Kibana 配置(kibana.yml

需配置两部分:
  • 内部通信(与 ES):自身的实体证书(供 ES 验证)+ CA 根证书(验证 ES 的实体证书);
  • 外部访问(用户浏览器):公共 CA 签发的实体证书(供浏览器信任)。
yaml
 
 
# 基本配置
server.name: kibana
server.host: "192.168.1.102"  # 实际IP/域名# 1. 与Elasticsearch内部通信的SSL配置
elasticsearch.hosts: ["https://192.168.1.100:9200"]  # ES的HTTPS地址
# 访问ES的账号密码(kibana_system用户,需提前在ES中创建)
elasticsearch.username: "kibana_system"
elasticsearch.password: "kibana_pwd"
# CA根证书(用于验证ES的实体证书是否可信)
elasticsearch.ssl.certificateAuthorities: ["/etc/kibana/certs/elastic-ca.pem"]
# 自身的实体证书(供ES验证Kibana身份,可选,若ES开启客户端验证)
elasticsearch.ssl.certificate: "/etc/kibana/certs/kibana-cert.pem"
elasticsearch.ssl.key: "/etc/kibana/certs/kibana-key.pem"# 2. 外部访问(用户浏览器)的HTTPS配置(公共CA证书)
server.ssl.enabled: true
# 公共CA签发的实体证书(公钥,如Let's Encrypt的kibana.yourdomain.com证书)
server.ssl.certificate: "/etc/kibana/certs/public-kibana-cert.pem"
# 公共CA证书对应的私钥
server.ssl.key: "/etc/kibana/certs/public-kibana-key.pem"
# 公共CA的根证书(可选,浏览器通常已预装,无需配置)
# server.ssl.certificateAuthorities: ["/etc/kibana/certs/public-ca-root.pem"]# 日志配置(可选)
logging:appenders:file:path: /var/log/kibananame: kibana-logroot:appenders: [file]
 

配置要点总结

  1. 每个组件都需要两类证书:
    • 自身的实体证书(xxx-cert.pem/xxx.p12 + 私钥):证明 “我是谁”;
    • CA 根证书(elastic-ca.pem/elastic-ca.p12):验证 “对方的实体证书是否可信”。
  2. Kibana 的特殊性:
    • 内部与 ES 通信:用自签名 CA 体系(elastic-ca.pem + 自身实体证书);
    • 外部用户访问:用公共 CA 证书(public-kibana-cert.pem),确保浏览器信任。
  3. 证书路径与权限:
    • 所有证书路径建议用绝对路径;
    • 确保组件进程(如elasticsearchkibana用户)对证书文件有读取权限(chown命令设置)。
  4. 一致性检查:
    • 实体证书中的hostname必须包含组件实际通信的 IP / 域名(否则 SSL 验证会报 “主机名不匹配” 错误);
    • 所有实体证书必须由同一 CA 根证书(elastic-ca)签发。
按此配置后,ELK 内部通信会通过自签名 CA 实现加密互信,Kibana 外部访问会通过公共 CA 实现浏览器信任,兼顾安全性和易用性。

 

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

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

相关文章

模型管理与树形结构

一、模型管理 核心模块:数据列表、字段列表 1. 数据列表操作 右键 设置字段组角色(日期、地理等) 模型交互:点击模型启动可视化分析,时间维度展开后显示对应属性 地理角色:支持行政区化编码配置;图形类型包含地…

20232416 2025-2026-1 《网络与系统攻防技术》实验五实验报告

1. 实验内容 1.1 实验要求 (1)选择一个DNS域名进行查询,获取如下信息:DNS注册人及联系方式、该域名对应IP地址、IP地址注册人及联系方式、IP地址所在国家、城市和具体地理位置。 (2)尝试获取QQ中某一好友的IP地址…

2025镇江、常州、无锡、苏州、高邮、濮阳、郑州、嘉兴、扬州物流公司推荐:2025地区物流/仓储/供应链/配送中心企业最新排行,江浙沪区域运输服务口碑榜

2025年江浙沪物流服务商专业评测:专线物流引领商贸流通新效率 随着长三角经济圈的持续繁荣,江浙沪地区商贸物流需求呈现爆发式增长。本榜单基于线路覆盖度、时效保障力、服务口碑、技术实力四大核心维度,结合中国物…

【题解】AT_abc432_e [ABC432E] Clamp

一眼 ds 题。 分析一下第二个式子: 若 \(l\leq r\),此时对于每个 \(a_i\),其贡献 \(sum\) 一定在 \([l,r]\) 中。具体地: \[sum= \begin{cases} l,\ a_i < l \\ a_i,\ l\leq a_i\leq r \\ r,\ a_i>r \\ \end…

WireWorld美国线世界中国企业代理资质结构化列表

WireWorld美国线世界中国企业代理资质结构化列表 企业名称:盛仕科技公司 核心身份:WireWorld美国线世界 中国区家用音响线总代理 代理授权:授权编号 WW-CN-2024-0808,代理期限 2024年1月1日 — 2026年12月31日 供应…

关于python的库的层级引用问题

关于python的库的层级引用问题1引用2. 在1的目录启动1,那么1的.地址,跟2的.地址都是启动目录的地址. 代码里面的根目录永远是启动目录.!!!!!!!!!!!!

jmeter查看天气/快递操作

11月10日任务: 1.在线查看某地天气预报 2.JMeter查看某地天气预报 3.在线查看快递 4.JMeter查看快递 5.通过前端页面展示天气预报查询 一.万维易源官网:万维易源 | 万维易源 二.接口地址:https://route.showapi.c…

详细介绍:00x01.Vulnhub系列DC-1靶机渗透测试:从Drupal漏洞到Root权限的完整攻防

详细介绍:00x01.Vulnhub系列DC-1靶机渗透测试:从Drupal漏洞到Root权限的完整攻防2025-11-16 22:15 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; over…

详细介绍:MySQL——用户权限和管理

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

完整教程:配置驱动开发:初探零代码构建嵌入式软件配置工具

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年海运物流专线公司推荐排行榜(广东地区重点推荐) 广州 / 深圳 / 佛山 / 东莞 ⇄ 澳洲 / 加拿大 / 新西兰物流运输公司推荐

2025 年海运物流专线公司推荐排行榜(广东地区重点推荐) 广州 / 深圳 / 佛山 / 东莞 ⇄ 澳洲 / 加拿大 / 新西兰物流运输公司推荐引言 随着珠三角地区跨境贸易与国际搬家需求持续升温,广州、深圳、佛山、东莞等地往返…

【CSP-J 2025】T4 多边形 polygon 题解

有史以来最水的 T4,我都会做。 形式化题面 给定一个长 \(n\) 的序列 \(\{a_i\}\)(\(1\le n ,a_i \le 5000\)),你需要找到一个长度为 \(m\) 的子序列,记下标为 \(b_1,b_2,\dots,b_m\),满足:\(m\ge 3\)\(\sum_{i=…

Django F对象完全指南:数据库层面的字段操作

一、F对象核心概念 1. 什么是F对象 F对象(F expression)是Django ORM提供的特殊查询表达式,用于直接在数据库层面引用模型字段值并进行操作。通过F对象,您可以:访问数据库字段值而无需加载到Python内存 执行字段间比…

如何计算一台服务器最大TCP连接数

在分布式系统和高并发场景中,服务器能支撑的TCP连接数直接决定了系统的承载能力。理解TCP连接的本质 每个tcp连接由四元组唯一标识:源ip地址 源端口 目标ip地址 目标端口对于服务器来说: 客户端ip可变 ------》 …

回退背包

回退背包问题(线段树分治): \(Content\): 给定\(n\)个物品,编号为\(i\)的物品有质量\(w_i\)和价值\(v_i\)以及一个体积\(V\)。初始时背包没有可选物体。 有\(m\)次操作,对于每次操作,给出一个整数\(op\)和\(x\)…

module jdk.compiler does not “以” com.sun.tools.javac.processing” to unnamed module

处理“module jdk.compiler does not “以” com.sun.tools.javac.processing” to unnamed module”错误的终极指南开发过程中遇到这个讨厌的错误,让你抓耳挠腮吗?别担心,你并不孤单。这个错误往往源于JDK项目版本…

nginx 响应html内容

设置ng返回的信息在页面显示 ngx.header.content_type = text/html; charset=utf-8 ngx.say("抱歉,您没有权限查看该监控! 如需开通权限,联系丁培倡/郑浩生添加") ngx.status = 403 ngx.exit(403)

Why cant Google appear in New York?

it just maybe is like Tencent can not appear in Bei Jing.

Django Q对象查询完全指南

引言:为什么需要Q对象 在Django中,当进行数据库查询时,我们通常使用filter()、exclude()等方法。但随着查询条件愈发复杂,尤其是需要组合逻辑或(OR)、逻辑非(NOT) 操作时,简单的过滤器链式调用会显得力不从心: #…

[AGC001E] BBQ Hard 分析

题目概述 给出 \(n\) 个 \(a_i,b_i\),其中 \(a_i\) 代表 \(0\) 的个数,\(b_i\) 代表 \(1\) 的个数,让你求对于所有的 \((i,j)(i<j)\) 这些 \(0,1\) 组合起来的本质不同的个数之和。 分析 思维好题! 首先我们不难…