天天看点

ElasticSearch启用安全认证功能和设置登录密码

作者:专攻术业程序员

1、生成证书和秘钥

/usr/share/elasticsearch/bin/elasticsearch-certutil ca

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

ElasticSearch启用安全认证功能和设置登录密码

在生成证书的过程中,都直接按回车,不需输入密码。

ElasticSearch启用安全认证功能和设置登录密码
ElasticSearch启用安全认证功能和设置登录密码

2、复制证书和秘钥到所有节点的配置目录下

cp elastic-certificates.p12 elastic-stack-ca.p12 /etc/elasticsearch/

scp elastic-* root@es2:/etc/elasticsearch/

设置秘钥的权限和属性

#chmod 777 elastic-*

#chown elasticsearch:elasticsearch elastic-*

3、修改ealsticsearch每个节点的配置

xpack.security.enabled: true

xpack.security.transport.ssl.enabled: true

xpack.security.transport.ssl.verification_mode: certificate

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

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

ElasticSearch启用安全认证功能和设置登录密码

修改完后,需要重启服务

#systemctl restart elasticsearch

4、设置用户名和密码

#/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive

在部署过程中,遇到以下问题

ElasticSearch启用安全认证功能和设置登录密码

主要原因是由于只在一个节点上操作,而在操作时集群还没恢复,当集群的节点都运行时,再执行设置密码的命令后,就成功了。

还有一个问题是,如果需要重新设置密码,可以删除.security-7索引即可。

ElasticSearch启用安全认证功能和设置登录密码

[root@elk1 elasticsearch]# curl -XDELETE 127.0.0.1:9200/.security-7 -u elastic:123456

看到{"acknowledged":true},表示删除成功

5、访问验证

ElasticSearch启用安全认证功能和设置登录密码

6、部署问题

如果只是配置如下第一项,而没有配置后面四个SSL相关的配置,则会出现如下无法启动服务的报错。

xpack.security.enabled: true

xpack.security.transport.ssl.enabled: true

xpack.security.transport.ssl.verification_mode: certificate

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

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

ElasticSearch启用安全认证功能和设置登录密码

在后面文章中,还会介绍跟kibana结合,配置登录的web页面。

kibana配置修改

由于elasticsearch已经配置为需要密码访问,因此kibana的配置中需要写入账号信息

#vi /etc/kibana/kibana.yml

elasticsearch.username: "kibana_system"

elasticsearch.password: "********"

ElasticSearch启用安全认证功能和设置登录密码

继续阅读