当前位置:首页>python>2python之修改es集群密码及各种方案尝试

2python之修改es集群密码及各种方案尝试

  • 2026-09-02 16:20:57
2python之修改es集群密码及各种方案尝试

写在前面的话

这样多好。上个月5月20号时,一女孩上号,上完后,她说给她妈妈也上一下,结果实名认证失败,说第二天再试。之后,再怎么联系,就是不回了,有一次,我给她说,你的号开始发力了,昨天33块,把阿姨的号处理一下。人家还是不理,我有点恼火,想着,你好歹回句话啊。之后,我平复心态,就把她妈妈的号移到最下面,不再管她。转机出现在6月10号,隔了20天时间,她往群里拉了两个人,说是她的好姐妹,推荐上号的,之后,又联系我说,前一段出国了,信号不好,刚回来,把她妈妈的实名整了,两个好姐妹也成功上号,相当于一次上了三个号。我还挺开心,算是守得云开见月明吧,所以,要挺住,不要和客户置气,咱们做生意,顾客是上帝,谁敢和上帝发脾气呢,是吧。

[198+100]-------->底部有张生活照片(头条号运营:大家想全托管上号的联系我哦,每天让你得个早餐钱,微信号: qhz_toutiao)

【关键词】python、ragflow、修改密码、es集群

一、修改es集群密码(三级)

描述:修改es集群密码需要配置证书,处理一下。

开工:

第一步:配置证书(四级)

20250513周二:11:17-12:00
1. 确认证书配置

在 /etc/elasticsearch/elasticsearch.yml 中,必须正确配置以下 至少一种 SSL 证书方式:

方式 1:使用 PKCS#12 密钥库(推荐)
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
方式 2:使用 PEM 格式的证书和密钥
xpack.security.transport.ssl.key: certs/node.key
xpack.security.transport.ssl.certificate: certs/node.crt
xpack.security.transport.ssl.certificate_authorities: certs/ca.crt

注:运行报错,如下:

admin@zero4  ragflow git:(v0.16.0-b) ➜ docker exec -it ragflow-es-zero4 /bin/bash
elasticsearch@zero4:~$ curl http://localhost:9200/_cluster/health?pretty
{
  "cluster_name" : "ragflow-cluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 3,
  "number_of_data_nodes" : 3,
  "active_primary_shards" : 35,
  "active_shards" : 70,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}
elasticsearch@zero4:~$ curl -X POST "http://localhost:9200/_security/user/elastic/_password" \
> -H "Content-Type: application/json" \
> -d '{"password": "New_Infini_RAG_Flow123!"}'
{"error":"no handler found for uri [/_security/user/elastic/_password] and method [POST]"}elasticsearch@zero4:~$ 
elasticsearch@zero4:~$ 

注:看来还是需要配证书的。

根本原因

  1. 证书配置缺失:xpack.security.transport.ssl.keystore.path 未正确配置

  2. 安全模块冲突:启用了安全功能但未提供有效证书

2.生成新的证书

第二步:生成新的证书(在主节点操作)

20250513周二:14:40-16:00

如下:

docker exec -it ragflow-es-zero4 /bin/bash

# 生成新证书(无密码)
bin/elasticsearch-certutil cert -out config/certs/elastic-nodes.p12 -pass ""

# 设置权限
chmod 644 config/certs/elastic-nodes.p12
exit

正确设置证书目录权限的方法

1:在宿主机上操作(非容器内)
# 1. 在 zero4 宿主机上执行(不是容器内)
docker exec ragflow-es-zero4 mkdir -p /usr/share/elasticsearch/config/certs

# 2. 修改宿主机挂载目录权限(关键步骤)
sudo chown -R 1000:1000 /home/admin/data/certs
2:生成证书(在容器内操作)
# 进入容器(无需sudo)
docker exec -it ragflow-es-zero4 /bin/bash

# 生成自签名证书(容器内执行)
bin/elasticsearch-certutil cert \
  --self-signed \
  -out config/certs/elastic-nodes.p12 \
  -pass "" \
  -dns zero2,zero3,zero4 \
  -ip 192.168.31.111,192.168.31.95,192.168.31.236

# 验证生成结果
ls -l config/certs/

注:这个会遇到权限问题,现在新的解法是在容器外操作。

3.生成证书(直接在宿主机操作)
# 1. 进入临时容器生成证书(避免权限问题)
docker run --rm -it \
  -v /home/admin/data/certs:/certs \
  elasticsearch:8.11.3 \
  bin/elasticsearch-certutil cert \
    --self-signed \
    -out /certs/elastic-nodes.p12 \
    -pass "" \
    -dns zero2,zero3,zero4 \
    -ip 192.168.31.111,192.168.31.95,192.168.31.236

# 2. 验证生成的证书
ls -l /home/admin/data/certs/

生成时,截图如下:

图2a-1

注:这个需要下载一些东西,等待下载完成。

接下来,在容器内部生成证书。

第三步:在容器内部生成证书(四级)

20250513周二:18:32-20:00

容器内部生成,需要挂载到外部,要不然,重启会丢失。

1.正确生成证书
# 1. 进入容器操作
docker exec -it ragflow-es-zero4 bash

# 2. 生成CA证书(先进入bin目录)
cd /usr/share/elasticsearch/bin/

# 3. 分两步生成(更可靠)
./elasticsearch-certutil ca --silent --pem -out /tmp/elastic-stack-ca.p12
./elasticsearch-certutil cert --silent --pem --ca /tmp/elastic-stack-ca.p12 -out /usr/share/elasticsearch/config/certs/elastic-nodes.p12

# 4. 设置权限
chown elasticsearch:elasticsearch /usr/share/elasticsearch/config/certs/elastic-nodes.p12
chmod 640 /usr/share/elasticsearch/config/certs/elastic-nodes.p12
exit

重新理一下,把文件写到外面去,别与代码放一起。

第四步:写到外面(四级)

20250513周二:22:08-00:00

重新提问,方案如下:

a.证书配置问题
  1. 共享证书问题:所有节点使用同一个elastic-nodes.p12证书文件,这是不安全且不符合TLS最佳实践的。每个节点应该有自己的证书(由同一CA签发)。

解决方案如下:

# 生成CA证书
bin/elasticsearch-certutil ca

# 为每个节点生成证书(示例zero2)
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 --dns zero2 --ip 192.168.31.111

# 将证书分发到对应节点

看一个新的解决方案。

第五步:新的解决方案(四级)

20250513周二:23:29-00:00

Elasticsearch 集群证书安装与安全模块启用方案

基于您提供的配置,以下是安装证书并启用安全模块的完整方案:

1. 证书准备
1.1 生成证书

首先需要在其中一台机器上生成证书(例如 zero2):

docker run --rm -it \
  -v /home/admin/es/certs:/usr/share/elasticsearch/config/certs \
  docker.elastic.co/elasticsearch/elasticsearch:8.11.3 \
  bin/elasticsearch-certutil cert --silent --pem --name elastic-nodes --out /usr/share/elasticsearch/config/certs/elastic-nodes.zip

注:这个有问题,截图如下:

图2a-2

注:修改后的命令如下:

docker run --rm -it \
  -v /home/admin/es/certs:/usr/share/elasticsearch/config/certs \
  docker.elastic.co/elasticsearch/elasticsearch:8.11.3 \
  bin/elasticsearch-certutil ca --silent --pem --out /usr/share/elasticsearch/config/certs/ca.zip

注:运行再次报错如下:

图2a-3

注:需要先设权限,命令如下:

sudo chown -R 1000:1000 /home/admin/es/certs
sudo chmod 755 /home/admin/es/certs

注:这样就生成了,截图如下:

图2a-4

注:接下来,解压证书。命令如下:

sudo unzip /home/admin/es/certs/ca.zip -d /home/admin/es/certs/

注:接下来,创建密钥库。

1.2 创建 PKCS#12 密钥库
docker run --rm -it \
  -v /home/admin/es/certs:/usr/share/elasticsearch/config/certs \
  docker.elastic.co/elasticsearch/elasticsearch:8.11.3 \
  bin/elasticsearch-certutil cert --silent --p12 --name elastic-nodes --dns zero2,zero3,zero4 --ip 192.168.31.111,192.168.31.95,192.168.31.236 --out /usr/share/elasticsearch/config/certs/elastic-nodes.p12

注:报错如下:

admin@zero2  es/certs/ca  ➜ docker run --rm -it \
➜   -v /home/admin/es/certs:/usr/share/elasticsearch/config/certs \
➜   docker.elastic.co/elasticsearch/elasticsearch:8.11.3 \
➜   bin/elasticsearch-certutil cert --silent --p12 --name elastic-nodes --dns zero2,zero3,zero4 --ip 192.168.31.111,192.168.31.95,192.168.31.236 --out /usr/share/elasticsearch/config/certs/elastic-nodes.p12
Simplifies certificate creation for use with the Elastic Stack

Non-option arguments:
command              

Option             Description        
------             -----------        
-E <KeyValuePair>  Configure a setting
-h, --help         Show help          
-s, --silent       Show minimal output
-v, --verbose      Show verbose output
ERROR: p12 is not a recognized option

注:修改命令如下:

docker run --rm -it \
  -v /home/admin/es/certs:/usr/share/elasticsearch/config/certs \
  -u 1000:1000 \
  docker.elastic.co/elasticsearch/elasticsearch:8.11.3 \
  bin/elasticsearch-certutil cert --silent --pem \
  --ca-cert /usr/share/elasticsearch/config/certs/ca/ca.crt \
  --ca-key /usr/share/elasticsearch/config/certs/ca/ca.key \
  --name elastic-nodes \
  --dns zero2,zero3,zero4 \
  --ip 192.168.31.111,192.168.31.95,192.168.31.236 \
  --out /usr/share/elasticsearch/config/certs/elastic-nodes.zip

注:生成截图如下:

图2a-5

注:接下来,解压节点证书,命令如下:

sudo unzip /home/admin/es/certs/elastic-nodes.zip -d /home/admin/es/certs/

注:接下来进行转化.

2.将 PEM 证书转换为 PKCS#12 格式

命令如下:

docker run --rm -it \
  -v /home/admin/es/certs:/usr/share/elasticsearch/config/certs \
  -u 1000:1000 \
  docker.elastic.co/elasticsearch/elasticsearch:8.11.3 \
  openssl pkcs12 -export \
  -in /usr/share/elasticsearch/config/certs/elastic-nodes/elastic-nodes.crt \
  -inkey /usr/share/elasticsearch/config/certs/elastic-nodes/elastic-nodes.key \
  -out /usr/share/elasticsearch/config/certs/elastic-nodes.p12 \
  -name elastic-nodes \
  -passout pass:""  # 设置空密码或替换为您想要的密码

注:生成截图如下:

图2a-6

注:接下来,设置权限。

3.设置最终权限

命令如下:

sudo chmod 640 /home/admin/es/certs/elastic-nodes.p12
sudo chmod 440 /home/admin/es/certs/ca/*.crt
sudo chmod 400 /home/admin/es/certs/ca/*.key
4.验证生成的 PKCS#12 证书
openssl pkcs12 -info -in /home/admin/es/certs/elastic-nodes.p12 -nodes

报错如下:

admin@zero2  ~/es/certs  ➜ sudo openssl pkcs12 -info -in /home/admin/es/certs/elastic-nodes.p12 -nodes
Enter Import Password:
MAC: sha1, Iteration 2048
MAC length: 20, salt length: 8
Mac verify error: invalid password?

六、头条战果汇报

昨日数据来啦,昨日总收入:923.24,昨日总播放:845.8万,软件截图如下:

图2f-1

注:想要全脱管运营头条号的联系我,你出账号,我来运营,保你天天有钱花,咨询电话: 17701328814(微信同号),也可以加群先了解一下。

图2f-2

注:个人微信如下,欢迎骚扰。

图2f-3

七、生活照片

拍摄于‎2025‎年‎6‎月‎1‎日,‏‎13:13:16,和二宝在小区门口玩,当时,二宝两岁八个月。以前在公司做项目,由于还是个小领导,产品经理提了需求,感觉不合适,直接怼回去,不惯着。但现在自己做头条推广,是要惯着客户的,因为没有客户就没钱啊,但也要做个区分,高意向的客户,优先响应,对于低意向的客户,就正常聊天就行,但一定要礼貌,说不定人家哪天想通了,卡卡带一批人来上号呢。

图2g-1

《本文完》

最新文章

随机文章