生活之殇。昨天,有一个小伙来上号,说是顺丰小哥介绍的。我说到时给小哥发15块红包。小伙说:你这有啥活吗,我什么都能做,不怕吃苦,现在就需要钱。我说:真有一个,现在推荐上人,成功一个,15块钱,但我还有一个团长的活,就是你拉10个人建个小群,到时,我这边收三成,你收三成,给小群里的人四成,细水长流,你每天都有钱花,后期啥也不用干了,周四提现数钱就行了,我建议你当团长。小伙说:哥,我听你的。转头往我大群里拉个人,对我说:有15块红包吧,哥。我有点无奈,我刚才白说了,是吗?我说:发红包这个是一锤子买卖,你呀,太急功近利了,对他有点讨厌。小伙说:哥,我得尿毒症了,急要钱换肾。一句话让我哑口无言,看来是我错怪小伙了,真的抱歉。
[197+100]-------->底部有张生活照片(头条号运营:大家想全托管上号的联系我哦,每天让你得个早餐钱,微信号: qhz_toutiao)
【关键词】python、ragflow、es集群、生成证书
描述:需要给es集群中的节点设置证书,这样才能启用安全模块,进而改密码。
开工:
20250514周三时间段:00:00-01:00现在验证证书报错,如下:

图3a-1
注:这个解决方法是重新生成证书,并且设置密码。
20250514周三时间段:00:14-01:00如果确实忘记了密码,建议重新生成证书:
sudo rm /home/admin/es/certs/elastic-nodes.p12docker 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:myPassword123 # 设置您能记住的密码
sudo openssl pkcs12 -info -in /home/admin/es/certs/elastic-nodes.p12 -nodes -passin pass:myPassword123注:此时还是报错如下:
admin@zero2 ~/es/certs ➜ 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:YourPassword123 # 设置您能记住的密码
admin@zero2 ~/es/certs ➜ ll
total 20K
drwxr-xr-x 2 root root 4.0K May 13 15:36 ca
-rw------- 1 zero root 2.5K May 13 23:36 ca.zip
drwxr-xr-x 2 root root 4.0K May 13 15:45 elastic-nodes
-rw------- 1 zero zero 2.5K May 14 00:14 elastic-nodes.p12
-rw------- 1 zero zero 2.7K May 13 23:45 elastic-nodes.zip
admin@zero2 ~/es/certs ➜ sudo openssl pkcs12 -info -in /home/admin/es/certs/elastic-nodes.p12 -nodes -passin pass:YourPassword123
MAC: sha1, Iteration 2048
MAC length: 20, salt length: 8
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Error outputting keys and certificates
4087C7C6C8740000:error:0308010C:digital envelope routines:inner_evp_generic_fetch:unsupported:../crypto/evp/evp_fetch.c:386:Global default library context, Algorithm (RC2-40-CBC : 0), Properties ()
admin@zero2 ~/es/certs ➜
注:这个原因是加密算法太弱了,因为 OpenSSL 3.x 默认禁用了较弱的加密算法(如 RC2-40)。
20250514周三时间段:00:19-01:00解决方案如下:
使用更安全的加密算法重新生成 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:YourPassword123 \
-certpbe AES-256-CBC \
-keypbe AES-256-CBC \
-macalg sha256
注:这样能生成,截图如下:

图3a-2
注:接下来,验证证书。
20250514周三时间段:00:26-01:00sudo openssl pkcs12 -info -in /home/admin/es/certs/elastic-nodes.p12 -nodes注:输入密码,是可以的,截图如下:

图3a-3
注:接下来,单启动一个节点看看效果。
启动报错如下:

图3a-4
20250514周三时间段:00:39-01:00处理如下:
在 zero2 上为 Elasticsearch 集群安装证书并启用安全模块的方案
基于您提供的配置,我将以 zero2 为例,说明如何在不使用挂载的情况下为 Elasticsearch 集群安装证书并启用安全模块。
方案概述
由于不使用挂载方式,我们需要在构建 Docker 镜像时直接将证书文件包含进去,并通过环境变量配置证书密码。
具体步骤
首先需要在 zero2 上生成或获取证书文件:
# 在 zero2 上执行
cd /path/to/your/project/docker/elasticsearch
# 生成 PKCS12 格式的证书(如果还没有)
openssl pkcs12 -export -in cert.pem -inkey key.pem -out elastic-nodes.p12 -name "elastic-nodes" -password pass:YourPassword123
更新 Dockerfile.elastic 以包含证书和配置:
ARG ES_VERSION
FROM docker.elastic.co/elasticsearch/elasticsearch:${ES_VERSION}
# 修改目录权限
USER root
# 创建证书目录并设置权限
RUN mkdir -p /usr/share/elasticsearch/config/certs && \
chown -R 1000:0 /usr/share/elasticsearch && \
chmod -R 777 /usr/share/elasticsearch
# 复制证书文件
COPY elasticsearch/elastic-nodes.p12 /usr/share/elasticsearch/config/certs/
# 设置证书文件权限
RUN chmod 640 /usr/share/elasticsearch/config/certs/elastic-nodes.p12 && \
chown 1000:0 /usr/share/elasticsearch/config/certs/elastic-nodes.p12
USER elasticsearch
创建 .zero2.env 文件(与 docker-compose-base.yml 同级):
# zero2 特定配置
ELASTIC_PASSWORD=your_secure_password_here
CERT_PASSWORD=YourPassword123
更新环境变量部分:
environment:
- network.host=0.0.0.0
- network.publish_host=${HOSTNAME}
- transport.publish_host=${HOSTNAME}
- node.name=${HOSTNAME}
- cluster.name=ragflow-cluster
- discovery.seed_hosts=zero2:9300,zero3:9300,zero4:9300
- network.bind_host=0.0.0.0
- transport.port=9300
- node.roles=master,data,ingest
- bootstrap.memory_lock=true
- ES_JAVA_OPTS=-Xms30g -Xmx30g
- ELASTIC_PASSWORD=${ELASTIC_PASSWORD}
# 添加证书相关环境变量
- xpack.security.transport.ssl.keystore.password=${CERT_PASSWORD}
- xpack.security.transport.ssl.truststore.password=${CERT_PASSWORD}
- xpack.security.http.ssl.keystore.password=${CERT_PASSWORD}
- xpack.security.http.ssl.truststore.password=${CERT_PASSWORD}
# 在 zero2 上执行
cd /path/to/your/project/docker
./build_pub_es_service.sh
注:运行报错,截图如下:

图3a-5
注:证书不正确,需要重新生成证书。如下:
# 进入项目目录
cd /path/to/your/project/docker/elasticsearch
# 创建临时目录
mkdir -p certs && cd certs
# 1. 生成 CA 证书
openssl genrsa -out ca.key 2048
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/CN=elastic-ca"
# 2. 生成节点证书
openssl genrsa -out elastic-nodes.key 2048
openssl req -new -key elastic-nodes.key -out elastic-nodes.csr -subj "/CN=zero2"
openssl x509 -req -days 3650 -in elastic-nodes.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out elastic-nodes.crt
# 3. 创建 PKCS12 格式的证书(包含私钥和证书链)
openssl pkcs12 -export -in elastic-nodes.crt -inkey elastic-nodes.key \
-chain -CAfile ca.crt -name "elastic-nodes" \
-out ../elastic-nodes.p12 -password pass:YourPassword123
# 验证证书内容
openssl pkcs12 -info -in ../elastic-nodes.p12 -nokeys -passin pass:YourPassword123
# 验证 HTTPS 访问
curl -k -u elastic:your_secure_password_here https://zero2:9200
# 验证集群状态
curl -k -u elastic:your_secure_password_here https://zero2:9200/_cluster/health?pretty
注意事项
证书一致性:三台机器上的 elastic-nodes.p12 证书文件必须完全相同,否则节点间无法建立安全连接。
密码安全:证书密码(YourPassword123)和管理员密码(your_secure_password_here)应该使用强密码,并在生产环境中妥善保管。
文件权限:虽然设置了宽松的权限(777)以简化问题排查,但在生产环境中应根据最小权限原则设置更严格的权限。
集群初始化:第一次启动集群时,可能需要先在一台机器上以单节点模式启动初始化集群,然后再加入其他节点。
证书更新:如果需要更新证书,需要重新构建所有节点的 Docker 镜像并重启容器。
这个方案通过在构建镜像时包含证书文件,并使用环境变量配置证书密码,实现了不依赖挂载的安全集群配置。其他节点(zero3 和 zero4)可以采用相同的配置方式,只需确保使用相同的证书文件和相应的主机名配置。
昨日数据来啦,昨日总收入:970.5,昨日总播放:873.6万,软件截图如下:

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

图3b-2
注:个人微信如下,欢迎骚扰。

图3b-3
拍摄于2025年11月4日,16:21:10,二宝给老妈在家抓拍的,老妈鬓角都有了成缕白发,愿老妈青春永驻,健康长寿。其实,人不能冲动,冲动是魔鬼,容易做错事。就拿之前我非常不理解的一个姐来说,她妈妈就差一个实名认证了,怎么说就是不理了。后来才知道,人家出国了,没看到我发的几十条消息,国外有的不用微信。再说回这个小伙,我本想让他当团长,做个细水长流的挣钱之人,但他嘴上说同意,转手拉人挣快钱,但他不说有尿毒症,我可能一直误会他呢。所以,接下来的推广,不管遇到什么人什么事,都要冷静,要多理解他人的苦衷,做个性格平稳的人,我觉得这也是挣钱之道,一个易怒的人是不太容易挣到钱的。
图3c-1
《本文完》