制作目的
在上一篇《elasticsearch7.X x-pack破解》中,我们启用了x-pack模块,elasticsearch集群中,如果使用了x-pack,那么集群中的各节点之间通讯就必须安全认证。为了解决节点间通讯的认证问,我们需要制作证书。
内容简介
本文的主要内容是指导SSL制作过程。
步骤
生成证书
一、cd到es安装目录下,执行命令:
cd /root/tools/elasticsearch-7.12.0 bin/elasticsearch-certutil ca
里先让你输入ca文件名,我已经生成过了,所以我的文件名就不能再用elastic-stack-ca.p12。然后需要输入密码,如:elastic-segi0409。
输入完密码后按回车,这时你的bin目录下会有一个文件名为elastic-stack-ca.p13的密钥库生成,包含证书颁发机构证书信息和用于签名的私钥信息。
二、 创建私钥:
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p13
这里需要输入第一步设置的密码(elastic-segi0409),然后再输入输出的文件名,如:elastic-certificates.p13,回车后bin目录下会生成一个名为elastic-certificates.p13的文件
三、目录配置
文件生成后,需要放入对应的目录。创建certs目录:mkdir config/certs,拷贝两个文件到创建的目录中,如:
证书拷贝至所有elasticsearch节点.把certs目录scp到集群的所有节点
elasticsearch集群启用SSL
在elasticsearch.yml中增加配置:
xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p13 xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p13
elasticsearch各节点为xpack.security.transport添加密码
cd /root/tools/elasticsearch-7.12.0 bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
注意:密码为创建证书时设置的密码
重启所有节点即可
如果登录失败,报错: failed to authenticate user [elastic] 用如下命令重新生成密码:
cd /root/tools/elasticsearch-7.12.0 ./bin/elasticsearch-setup-passwords auto