Elasticsearch安装不会默认开启用户名密码验证,直接访问http://127.0.0.1:9200会显示elasticsearch信息,很明显,这样是不安全的;那如何开启简单的用户名密码验证呢?

Elasticsearch示例版本:7.12.3

第一步、在 elasticsearch.yml 中添加如下配置

# 配置X-Pack
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

第二步、重启elasticsearch服务

systemctl restart elasticsearch

第三步、设置elasticsearch密码

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

因为需要设置 elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user 这些用户的密码,故这个过程比较漫长,耐心设置;

第四步、验证

浏览器直接访问http://127.0.0.1:9200,会出现输入用户名、密码的弹窗,输入elastic和密码后,才能看到elasticsearch信息;
在这里插入图片描述

*修改密码

下面的示例为将elastic的密码设置为"123456"

curl -H "Content-Type:application/json" -XPOST -u elastic 'http://127.0.0.1:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "123456" }'

*如果密码忘了怎么办?如何重置密码?

1、修改elasticsearch.yml 配置,将身份验证相关配置屏蔽掉;
2、重启ES,查看下索引,发现多了一个.security-7索引,将其删除
3、到此就回到ES没有设置密码的阶段了,如果想重新设置密码,请从第一步开始

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐