ES 安全认证模块之XPack
X-Pack是ES扩展功能,提供安全性,警报,监视,报告,机器学习和许多其他功能。 ES7.0+之后,默认情况下,当安装Elasticsearch时,会安装X-Pack,无需单独再安装。具体查看官方文档相关配置项也在官方文档中, ES版本是8.2.3,环境windows server2012 R2
1、创建证书颁发机构
cmd定位到es运行时(bin)目录输入以下命令
elasticsearch-certutil ca
提示输入密码和文件输出路径,可以直接回车,也可以输入密码和输入自定义存放路径进行设置.回车的话,会生成如下文件
后缀为ca的证书颁发机构文件
2、为节点创建证书文件
cmd定位到es运行时(bin)目录输入以下命令
elasticsearch-certutil cert --ca elastic-stack-ca.p12
提示输入密码和文件输出路径,可以直接回车,也可以输入密码和输入自定义存放路径进行设置.回车的话,会生成如下文件
3、keystore和truststore设置密码
keystore:存放公钥,私钥,数字签名等信息
truststore:存放信任的证书
keystore和truststore都存放key,不同的地方是truststore只存放公钥的数字证书,代表了可以信任的证书,keystore存放私钥相关.
cmd定位到es运行时(bin)目录输入以下命令
elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password
elasticsearch-keystore add xpack.security.http.ssl.truststore.secure_password
创建证书时如果输了密码,需要输入这个密码.这里不做输入回车,操作完成之后,相关的信息就会写入到config文件夹下的elasticsearch.keystore中
4、修改配置文件修改Xpack相关信息
打开elasticsearch.yml文件加入以下配置
xpack.security.enabled: true xpack.security.http.ssl: enabled: false verification_mode: certificate truststore.path: elastic-certificates.p12 keystore.path: elastic-certificates.p12 xpack.security.transport.ssl: enabled: true verification_mode: certificate keystore.path: elastic-certificates.p12 truststore.path: elastic-certificates.p12
这里要注意elastic-certificates.p12证书文件的位置,这里默认读取的是config文件夹下,所以需要拷贝一下.
5、集群环境
需要将操作节点生成的证书文件复制到其余节点的config目录下.
6、运行
按上述配置结束完毕之后,在操作节点重置elastic用户的密码, cmd定位到es运行时(bin)目录输入以下命令
elasticsearch-reset-password -u elastic -i <password>
输入用户名密码完成登录.
7、kibana访问
elastic账号是无法用于kibana的登陆的,所以需要自行创建账号,并授权,cmd定位到es运行时(bin)目录输入以下命令
(1)、创建登录kibana的账号
elasticsearch-users useradd 用户名
接着会提示输入密码,键入密码即可.这里用户创建完成
(2)、角色授权操作
elasticsearch-users roles -a superuser 用户名
elasticsearch-users roles -a kibana_system 用户名
superuser能正常打开es的9200端口,kibana_system配置后才可以正常对接kb和es
(3)、查看授权
elasticsearch-users roles -v 用户名
授权成功.
(4)、修改kibana配置文件kibana.yml
修改以下配置:
elasticsearch.username: "用户名" elasticsearch.password: "用户密码" elasticsearch.hosts: ["http://1.1.1.1:9200","http://2.2.2.2:9200","http://3.3.3.3:9200"] server.port: 5601
(5)、集群环境
如果(4)中host配置了多个节点,需要在节点中重复添加用户和授权的操作
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?