ElasticSearch全文搜索引擎,如何重置及自定义用户密码?
发布于 作者:苏南大叔 来源:程序如此灵动~在最新版本的ElasticSearch@8.12
中,默认是开启了xpack
功能的。这个插件的主要功用就是给ElasticSearch
增加用户名密码、证书之类的安全防护。那么,无论是对接elastic search head
还是kibana
的过程中,都是离不开这个鉴权的过程的。所以,本文单独成文。
大家好,这里是苏南大叔的“程序如此灵动”博客,这里记录苏南大叔和计算机代码的故事。本文描述,如何重置elastic search
的密码,可以解决忘记初始密码的问题。本文中还将介绍elastic search
不使用xpack
的方式,就是说彻底关闭elastic search
鉴权的过程。本文测试环境:win10
,elasticsearch@8.1.2
,java@11.0.14
。
忘记初始密码怎么办?
在第一次运行bin/elasticsearch
的时候,会输出默认的用户名elastic
以及一个随机密码。但是,如果这个随机密码没有保存下来,或者忘记了怎么办呢?
答案就是运行官方的重置密码程序:
bin/elasticsearch-reset-password -u <username>
elasticsearch
内置了很多用户,比如kibana-system
之类的特殊用户。但是,具有更广阔的使用场景的用户名,还是默认的elastic
,所以大多数情况下,需要运行的语句是:
bin/elasticsearch-reset-password -u elastic
注意:运行此命令的时候,需要启动elasticsearch
,否则会报错。启动的方式是:
bin/elasticsearch
还有个elasticsearch-setup-passwords
工具,但是这个工具只能在没有被初始化的时候使用,基本上没有使用的场景。所以暂时略过。
使用自定义密码
上一个功能里面可以把密码重置为随机,本功能里面说如何修改密码,这个前提是您已经可以正常运行elasticsearch
。官方文档是:
对,是的,由于elasticsearch
本身没有界面,所以修改密码的操作看起来是非常复杂的。但是,这些都是elasticsearch
的基本操作,如果不能正确执行的话,也没有必要学习elasticsearch
了。
里面提到修改方式是:
POST /_security/user/<user>/_password
{
"password" : "new-password"
}
对于默认安装情况下的elasticsearch
来说,要修改默认的elastic
用户密码,目前这个完成的方式就是:
参数 | 内容 |
---|---|
url | https://localhost:9200/_security/user/elastic/_password |
Authorization | basic base64运算结果('user:password') |
method | POST |
content | {"password" : "new-password"} |
大家可以用自己熟悉的方式来完成这个请求,比如:curl
/postman
/kibana
等等。如果执行成功了,这里会得到一个{}
的回显信息。
下面的是苏南大叔使用wisdom restclient
做这个请求的截图:
其中Authorization
鉴权的内容格式是:<base64>
。<base64>
是对用户名:密码
字符串进行base64
加密得到的字符串。(自行找办法获得base64字符串,这个难不倒程序员吧?)这里有个网站,也许用得到:
上述截图中的工具下载地址:
下图是在kibana
里面的相同操作的截图:
无论使用什么方式,都要考虑要解决的问题是:
- 鉴权问题,如何发送用户名密码呢?
https
证书问题,怎么过这个证书呢?
另外,也不一定会修改成功,这里存在由于elasticsearch
的原因,导致的错误发生。
不使用用户名密码
修改配置文件config/elasticsearch.yml
,就可以实现“裸奔”不需要用户名密码的效果。修改的项目是:
xpack.security.enabled: true
修改为:
xpack.security.enabled: false
修改保存,重启生效。这个配置下,可以直接访问还是http
的9200
即可,不需要用户名密码。
如果您要使用https
的话,记得信任证书到“受信任的证书机构”区域。
参考文献
- https://newsn.net/say/elastic-search.html
- https://www.elastic.co/cn/start
- https://www.elastic.co/cn/webinars/getting-started-elasticsearch
综述
要想使用好ElasticSearch
工具,首要解决的问题就是用户名和密码的问题。所以,本文中的内容,是熟练掌握ElasticSearch
的基础内容。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。