1 概述

elasticsearch节点之间,elasticsearch与客户端之间的通信,可以SSL加密。那如何为elasticsearch初始化证书呢,elasticsearch容器提供了一些命令行工具来实现。


2 命令行步骤汇总

# 步骤1:获取节点特定信息
NODE_NAME=$(hostname)
SERVICE_DOMAIN="${NODE_NAME}.elasticsearch"
POD_IP=$(hostname -i)
    
# 步骤2:生成CA证书
bin/elasticsearch-certutil ca --days 3650 -out /tmp/ca.p12 -pass ""
      
# 步骤3:生成节点服务器证书
bin/elasticsearch-certutil cert \
        --days 3650 \
        --silent \
        --ca /tmp/ca.p12 \
        --ca-pass "" \
        --name $NODE_NAME \
        --dns $SERVICE_DOMAIN,localhost \
        --ip $POD_IP,127.0.0.1 \
        --out /tmp/$NODE_NAME.p12 \
        --pass ""

# 步骤4:验证服务器证书
openssl pkcs12 -in /tmp/$NODE_NAME.p12 -nodes -passin pass: 2>/dev/null | openssl x509 -noout -text | grep -A1 'Subject Alternative Name'

# 步骤5:查看服务器证书的证书链(也就是CA是谁)
openssl pkcs12 -in /tmp/ca.p12 -nokeys -chain -passin pass:
openssl pkcs12 -in /tmp/ca.p12 -nokeys -chain -passin pass: | openssl x509 -noout -text

3 实践

执行如下命令创建容器并进入:

docker run -it -u 0 --rm --name elasticsearch-0 swr.cn-south-1.myhuaweicloud.com/migrator/elasticsearch:8.14.3 bash

复制以上命令,会在/tmp目录中创建两个.p12结尾的文件,结果如下:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐