同福

Elasticsearch开启HTTP安全认证设置用户名和密码的方法

介绍

介绍

前面福哥带着大家学会了elastic官方的用于管理Elasticsearch搜索引擎的工具Kibana的安装使用,大家可以看到Kibana可以针对Elasticsearch进行完全的索引、数据的操作,但是Kibana缺又不需要登录就可以使用,这有点太不安全了!

其实Kibana不用登录不是Kibana自己的问题,是我们的Elasticsearch搜索引擎没有开启安全认证的原因,如果ES开启了认证那么Kibana就会需要登录才能使用了!

今天福哥就带着大家学习如果开启Elasticsearch的HTTP安全认证~

环境

镜像版本
elasticsearch:6.8.18、kibana:6.8.18
操作系统CentOS 7 x86_64 2009
服务器TFCentOS7x64
IP192.168.168.68
端口9200、5601

使用

启动Elasticsearch

首先把Elasticsearch启动起来。

docker start tfelasticsearch

62616a666c9f7d26e69551be56d86a19.png

生成TLS证书

进入到tfelasticsearch的容器里面,进入到Elasticsearch的bin目录下面,使用证书工具elasticsearch-certutil生成TLS证书,最后设置证书文件所有者为elasticsearch。

docker exec -ti tfelasticsearch bash
cd /usr/share/elasticsearch/bin/
./elasticsearch-certutil cert -out ../config/elasticsearch_certificate.p12 -pass ""
chown elasticsearch ../config/elasticsearch_certificate.p12

73d479e291b4a6369507ae93eb2c384c.png

开启ES认证

编辑/usr/share/elasticsearch/config/elasticsearch.yml配置文件,增加如下配置信息。

# security
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elasticsearch_certificate.p12
xpack.security.transport.ssl.truststore.path: elasticsearch_certificate.p12

78742162134c32dfcd273899d91d72ba.png

设置密码

现在可以设置密码了,进入到Elasticsearch的容器里面,进入到Elasticsearch的bin目录下面,使用elasticsearch-setup-passwords工具设置密码。

docker exec -ti tfelasticsearch bash
cd /usr/share/elasticsearch/bin/
./elasticsearch-setup-passwords interactive

7900278e4bd07a5fddb7e86e24b177f6.png

Kibana配置ES用户名和密码

现在进入到tfkibana的容器里面,把Elasticsearch开启安全认证时候设置的kibana的用户名和密码配置到/usr/share/kibana/config/kibana.yml里面。

elasticsearch.username: "kibana"
elasticsearch.password: "********"

70efd02ae1bd354e7624ed91d797f7b6.png

总结

今天福哥带着大家学习了开启Elasticsearch搜索引擎的安全认证的方法,设置了用户名和密码之后再使用ES就安全多了!使用Kibana操作ES也安全多了!