ElasticSearch全文搜索引擎,如何修改配置切换鉴权方式?
发布于 作者:苏南大叔 来源:程序如此灵动~在ElasticSearch
的使用过程中,主要的组合就是http
/https
。有好几种签权方式:不用密码/401未授权/url直传密码,这几种组合方式。所以,根据ElasticSearch
配置的不同,无论是使用kibana
或者es head
或者普通编程代码,对数据进行管理的时候,登陆鉴权的方式也是存在很大不同的。
大家好,这里是苏南大叔的“程序如此灵动”博客,这里记录苏南大叔和计算机代码的故事。本文记录ElasticSearch
的配置文件变化,如何引起鉴权方式的变化。本文测试环境:win10
,elasticsearch@8.1.3
,java@11.0.14
。
配置文件
配置文件是config/elasticsearch.yml
。第一次启动之后,就会生成这个文件。
默认配置是:
xpack.security.enabled: true
xpack.security.http.ssl:
enabled: true
keystore.path: certs/http.p12
启动elasticsearch
的命令,可以是:
bin/elasticsearch
修改配置文件后,需要重启elasticsearch
才能生效。
信任证书
如果要启用https
的话,记得先把证书加入到“信任的根证书颁发机构”里面。
这个证书里面,固定了ip
地址。如果服务器ip是自动获得的可变的那种的话,就会出现各种奇奇怪怪的问题。如果出现了一系列无法解释的错误的时候。你可以尝试修改环境ip为安装证书的时候的ip。
配置对照表
总开关 | ssl开关 | https | http |
---|---|---|---|
xpack.security.enabled: true | xpack.security.http.ssl:enabled: true | 401 | empty_response |
xpack.security.enabled: false | xpack.security.http.ssl:enabled: true | err_ssl | 不需要鉴权 |
xpack.security.enabled: true | xpack.security.http.ssl:enabled: false | err_ssl | 401 |
xpack.security.enabled: false | xpack.security.http.ssl:enabled: false | err_ssl | 不需要鉴权 |
管理数据的目的,默认启用的是9200
端口。
即使地址都是localhost
,但协议方面有http
和https
的区分。不同的配置情况下,http
和https
的鉴权方式也不同。
401鉴权:
错误提示:
不需要鉴权:
推荐配置
由于这个证书ssl会带来太多的不确定性,引发各种报错。所以,苏南大叔个人觉得还是关闭https
比较好。个人推荐的config/elasticsearch.yml
配置项目是:
xpack.security.enabled: true
xpack.security.http.ssl:
enabled: false
效果就是访问http
的9200
,然后输入用户名密码。
使用url
直传用户名密码
传递方式是:
- ?auth_user=elastic&auth_password=elastic
在es head
里面,可以使用上述直接传递的方式,可能是经过了es head
的转换,在其它的数据管理环境下,暂时无法识别执行。具体情况,留作后续文章讨论。
参考文献
- https://newsn.net/say/elastic-search.html
- https://newsn.net/say/elastic-search-password.html
- https://www.elastic.co/cn/start
- https://www.elastic.co/cn/webinars/getting-started-elasticsearch
综述
要想使用好ElasticSearch
工具,首要解决的问题就是用户名和密码的问题。所以,本文中的内容,要好好掌握。在多变的测试环境中,个人非常不推荐使用xpack
的鉴权方式,也就是说不建议启用https
功能,会带来很多未知的奇奇怪怪的证书认证相关的问题。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。