elasticsearch 配置用户名和密码

news/2024/11/24 6:54:47/

无密码的其他配置项在:https://blog.csdn.net/Xeon_CC/article/details/132064295

elasticsearch.yml配置文件:

xpack.security.enabled: true
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: /path/to/elastic-certificates.p12
xpack.security.transport.ssl: enabled: trueverification_mode: certificateclient_authentication: requiredkeystore.path: /path/to/elastic-certificates.p12truststore.path: /path/to/elastic-certificates.p12
证书的密码:
abcd1234所有用户的密码:
bcda1234生成证书
elasticsearch-certutil ca --out /path/to/elastic-stack-ca.p12 --pass abcd1234如果你不想生成单独的证书,也就是三个节点共用一个证书,请不要执行这行命令,这行命令将被下文所提到的证书生成方式代替。
elasticsearch-certutil cert --ca /path/to/elastic-stack-ca.p12输入指定路径
/path/to/elastic-certificates.p12注意:设置密码这一步,三个节点都要执行。
设置密码
elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password
elasticsearch-keystore add xpack.security.http.ssl.truststore.secure_password
elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password查看密码
elasticsearch-keystore show xpack.security.http.ssl.keystore.secure_password
elasticsearch-keystore show xpack.security.http.ssl.truststore.secure_password
elasticsearch-keystore show xpack.security.transport.ssl.truststore.secure_password
elasticsearch-keystore show xpack.security.transport.ssl.keystore.secure_password如果你希望集群共享一个整数,那么三个节点,确保elastic-certificates.p12证书文件是复制到每个节点的。设置为false
xpack.security.http.ssl.enabled: false
修改密码
elasticsearch-setup-passwords interactive最后,配置文件改回去
xpack.security.http.ssl.enabled: true最后在elasticsearch-head访问:https://192.168.0.111:9200/?auth_user=xxx&auth_password=xxx

在上面的“生成证书”这个步骤中的第二行命令,可以换为以下的步骤,安全性会更高,注意,确保存在elastic-stack-ca.p12文件,也就上述“生成证书”步骤中的第一行命令生成的文件。
首先随便选择一个节点:在任何目录下创建instances.yml,并键入如下内容:

instances:- name: "node-1"dns:- "localhost"ip:- "192.168.1.105"- name: "node-2"dns:- "localhost"ip:- "192.168.1.105"- name: "node-3"dns:- "localhost"ip:- "192.168.1.105"

比如我放在config目录下

elasticsearch-certutil cert --in config/instances.yml --out config/certs/certificates.zip --ca config/certs/elastic-stack-ca.p12 --pass abcd1234

然后,解压certificates.zip文件,会得到node-1、node-2、node-3文件夹
把node-1.p12、node-2.p12、node-3.p12复制到每个对应es节点中的config/certs目录下,certs目录如果没有则自己新建。

最后更改elasticsearch.yml配置文件
在这里插入图片描述
把这些证书文件替换为各自的证书文件。

这种配置方式的安全性要更高,推荐使用这种每个节点的证书都不同的方式。

如何用python通过SSL证书连接ES集群?
在每一个节点执行一下命令:

使用openssl配置客户端证书

openssl pkcs12 -in node-1.p12 -out node-1.crt -nokeys -nodes
openssl pkcs12 -in node-2.p12 -out node-2.crt -nokeys -nodes
openssl pkcs12 -in node-3.p12 -out node-3.crt -nokeys -nodes

然后,合并证书;

type node-1.crt node-2.crt node-3.crt > combined_ca.crt

最后在python中使用combined_ca.crt文件,把服务器生成的这个文件拷贝到python项目的目录中。

es = Elasticsearch(['https://192.168.1.105:9201', 'https://192.168.1.105:9202', 'https://192.168.1.105:9203'],  # 你可以指定一个或多个节点http_auth=('elastic', 'your_password'),scheme='https',use_ssl=True,ca_certs='combined_ca.crt', # 指定证书的路径。verify_certs=True  # 设置为True意味着客户端将验证服务器的证书
)index_name='abccc_2023-08-09'
if not es.indices.exists(index=index_name):body = {"settings": {"number_of_shards": 3,},"mappings": {"properties": {"location": {"type": "geo_shape"},"geo_loctn": {"type": "geo_point"}}}}es.indices.create(index=index_name, body=body)print('create es index ...')

如果能创建索引,说明验证成功。


http://www.ppmy.cn/news/1001431.html

相关文章

arcgis字段计算器

1、两字段叠加。要求待叠加的字段类型为文本或字符串类型。如下: 2、字符串部分提取。

每日一题8.3 345

345. 反转字符串中的元音字母 给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。 元音字母包括 a、e、i、o、u,且可能以大小写两种形式出现不止一次。 示例 1: 输入:s "hello" 输出&a…

Linux(四)---------网络命令(ip命令)

一.ip命令简介 IP命令是iproute软件包中强大得网络管理工具,包括ifconfig和route命令的作用,查看系统路由,网络设备,设置策略等功能。 1.查看ip命令的使用宝典 [rootlocalhost ~]# ip --help Usage: ip [ OPTIONS ] OBJECT { C…

深度学习Redis(2):持久化

前言 在上一篇文章中,介绍Redis的内存模型,从这篇文章开始,将依次介绍Redis高可用相关的知识——持久化、复制(及读写分离)、哨兵、以及集群。 本文将先说明上述几种技术分别解决了Redis高可用的什么问题;然后详细介绍Redis的持…

Netty:ByteBuf的容量(capacity)

介绍 ByteBuf的capacity()返回该ByteBuf可容纳的字节数。 maxCapacity()返回该ByteBuf可允许的最大容量。 capacity(int newCapacity)对当前容量进行扩展或者缩减。如果新的容量newCapacity小于当前的容量,那么ByteBuf的内容会被截取到newCapacity的长度&#xff0…

腾讯测试大佬分享4个关于 Python 函数(方法)的冷知识

关于参数标识 不知道大家在工作中有没有遇到一种情况,你的同事 A 写了一个方法给你调用,然后你调用时不知道该传什么参数,然后这个同事 A 还很 cao dan 的居然不加班!你一脸茫然的看着这个方法,当你尝试传进去一个 ab…

【雕爷学编程】MicroPython动手做(30)——物联网之Blynk 4

知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…

C++ 矩形切割

【问题描述】 小明有一些矩形的材料,他要从这些矩形材料中切割出一些正方形。 当他面对一块矩形材料时,他总是从中间切割一刀,切出一块最大的正方 形,剩下一块矩形,然后再切割剩下的矩形材料,直到全部切为正…