制作目的
在上一篇《elasticsearch7.X x-pack破解》中,我们启用了x-pack模块,elasticsearch集群中,如果使用了x-pack,那么集群中的各节点之间通讯就必须安全认证。为了解决节点间通讯的认证问,我们需要制作证书。
内容简介
本文的主要内容是指导SSL制作过程。
步骤
- 生成证书
一、cd到es安装目录下,如:cd /data/platform/elasticsearch/elasticsearch-7.0.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.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
- elasticsearch各节点为xpack.security.transport添加密码
bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
注意:密码为创建证书时设置的密码 - 重启所有节点即可