Elasticsearch8 集群搭建(二)配置篇:(3)安全配置

此篇记录Elasticsearch 8.x传输层的安全配置。

传输层节点间:

如果集群有多个节点,必须在节点间配置TLS。生产模式下,如果不启用TLS,集群将无法启动。

图片来源:Set up basic security for the Elastic Stack | Elasticsearch Guide [8.10] | Elastic

传输层依赖于TLS进行节点间的加密和认证。在节点之间配置 TLS 可以防止未授权的节点访问集群。 

节点加入集群时,必须使用同一个CA签发的证书。

1、生成证书:

① ES启动前,在任意一个节点上使用elasticsearch-certutil工具为集群生成CA证书:

./bin/elasticsearch-certutil ca

a. 出现提示时,接受默认的文件名:elastic-stack-ca.p12,这个文件包含CA的公用证书和用于给每个节点签发证书的私钥;

b. 为CA设置密码,如果不在生产环境下密码可以置空。建议设置。

② 在任意节点上,为集群中的节点生成一个证书和私钥,使用①中生成的elastic-stack-ca.p12。

./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

a.输入CA密码,如果①中密码置空直接按【Enter】键;

b.为证书设置密码,并接受默认的文件名:elastic-certificates.p12,这个文件包含了一个节点证书,节点密钥和CA证书。

③ 在集群中每个节点上,将elastic-certificates.p12文件拷贝到/usr/local/elasticsearch-8.10.2/config/目录下。

(2)节点间使用TLS加密通信:

在集群中每个节点上进行以下操作:

① 编辑/usr/local/elasticsearch-8.10.2/config/elasticsearch.yml文件:

在BEGIN SECURITY AUTO CONFIGURATION模块找到# Enable encryption and mutual authentication between cluster nodes部分,进行以下设置:

xpack.security.transport.ssl.enabled: true

xpack.security.transport.ssl.verification_mode: certificate

xpack.security.transport.ssl.client_authentication: required

xpack.security.transport.ssl.keystore.path: elastic-certificates.p12

xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

② 如果创建节点证书时设置了密码,执行以下命令在ES keystore中存储密码:

./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password

./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password

③ 在集群中每个节点上执行①②操作;

④ 在每个节点上启动ES。

./bin/elasticsearch

后台启动:

./bin/elasticsearch -d

你可能感兴趣的:(Elasticsearch,elasticsearch,安全)