点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!
Elasticsearch 证书主要用于加密和保护 Elasticsearch 集群之间的通信,以确保数据传输的安全性。它可以帮助防止黑客窃取数据或篡改通信,从而保护您的 Elasticsearch 数据和应用程序, 在ElasticSearch证书失效会导致以下安全隐患:
1)流量明文传输Elasticsearch节点间通信以及客户端访问都通过明文 HTTP协议,流量内容可以被轻易窃取与监控。这可能导致敏感数据泄露。 2)中间人攻击没有证书的集群很容易受到中间人攻击(MITM),攻击者可以冒充节点或客户端进行通信,劫持与篡改数据。 3)未授权访问 集群与索引完全开放,任何人都可以匿名访问。这可能导致数据被未经授权的用户读取、篡改与删除。 4)伪造客户端与节点没有证书认证,任何人都可以伪造客户端与节点加入集群,这可能用于执行进一步的攻击。 5)DoS攻击匿名的网络访问更易受到拒绝服务攻击,攻击者可以通过大量请求打垮Elasticsearch集群。
所以使用证书可以极大地提高Elasticsearch的安全性,防范各种威胁与未授权访问,以下是ES证书替换步骤。
2.1 生成新的ca证书
./bin/elasticsearch-certutil ca --pem --out ca-nl-20230506.zip --days 3650 -s
unzip ca-nl-20230506.zip
./bin/elasticsearch-certutil cert --ca-cert ca/ca.crt -
-ca-key ca/ca.key --pem --name elasticsearch-6.8.2 --out elasticsearch-6.8.2-nl-20230506.zip --days 3650 -s
2.2 上传到ftp服务器
ftp IP
put ca-nl-20230506.zip ftp目录
put elasticsearch-6.8.2-nl-20230506.zip ftp目录

2.3 各ES主机参数替换
cp ca{,.bak}
cp elasticsearch-6.8.2{,.bak}

下载 cd到config目录,ftp下载就到当前目录:
ftp ip
get ca-nl-20230506.zip
get elasticsearch-6.8.2-nl-20230506.zip
解压
unzip ca-nl-20230506.zip
unzip elasticsearch-6.8.2-nl-20230506.zip
复制到其他节点 以实际ES节点路径为准:
cp ca /app/...../config/
cp elasticsearch-6.8.2 /app/../config

ES6版本
#启用X-Pack安全与访问控制,true开启,flase关闭
xpack.security.enabled: true
#启用节点间TLS加密通信,true开启,flase关闭
xpack.security.transport.ssl.enabled: true
#节点私钥文件路径。每个节点需要提供私钥加入集群
xpack.ssl.key: elasticsearch-6.8.2/elasticsearch-6.8.2.key
#节点证书文件路径。每个节点需要提供证书加入集群
xpack.ssl.certificate: elasticsearch-6.8.2/elasticsearch-6.8.2.crt
#可信CA证书文件路径。用来验证其他节点或客户端的证书
xpack.ssl.certificate_authorities: ca/ca.crt
ES7版本
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
#ES7版本以下参数做了修改
xpack.security.transport.ssl.key: elasticsearch-7.2.0/elasticsearch-7.2.0.key
xpack.security.transport.ssl.certificate: elasticsearch-7.2.0/elasticsearch-7.2.0.crt
xpack.security.transport.ssl.certificate_authorities: ca/ca.crt
2.4 证书全部完成后,关闭分片移动
curl -H "Content-Type: application/json" -u elastic:密码 -X PUT
http://IP:PORT/_cluster/settings -d '{"persistent":{"cluster.routing.allocation.enable":"none"}}'
2.5 关闭各个ES节点进程
for i in `ps -ef |grep "Elasticsearch -d"|grep -v grep |awk '{print $2}'`; do kill $i; done
2.6 启动ES进程
/app/elasticsearch-6.8.2/bin/elasticsearch -d
2.7 检查集群状态
curl -u elastic:密码 -s http://IP:PORT/_cat/health?v curl -u elastic:密码 -s http://IP:PORT/_cat/nodes?v
2.8 开启分片移动
curl -H "Content-Type: application/json" -u elastic:密码 -X PUT
http://IP:PORT/_cluster/settings -d '{"persistent":{"cluster.routing.allocation.enable":"all"}}'
总 结:

本文作者:李俞松(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




