1、使用ES自带的XPACK开启密码校验
在 es7.0 版本以后(之前的版本没怎么用过,不太清楚)安装包默认自带了 xpack
功能,所以只需要在 es 包下的 config 目录修改一下 es 的默认配置文件elasticsearch.yml
即可。
在elasticsearch.yml
中追加写入以下参数:
xpack.security.enabled: true
## 加密方式
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
然后重启es让配置文件生效,再到 es 包下 bin 目录执行以下命令:
./elasticsearch-setup-passwords interactive
运行结果如下:
运行完以后则会出现以上界面,先是提醒你,es链接会需要密码,可能会影响现在的使用,再接下来就是会默认的创建6个用户,并让你设置这六个用户的密码(忽略掉用户名,这些用户权限都是相同的)
设置完成以后,这时候再访问 es 的地址,就会提示安全错误信息了,到此,es 的密码设置完成。
2、使用 postman 访问带密码的
当 es 设置完成密码后,就不能再像之前那样随心所欲的访问了,否则会返回安全错误异常。
这时候我们在访问的时候就需要把用户名和密码的认证信息附加上去,如果你平时使用的是curl命令进行操作 es,那么只需要在curl 后增加 –user 用户名:密码 即可,示例如下:
curl 172.1.11.x:9200 --user elastic:123456
但是命令行的操作体验很不好,大部分人还是使用 postman 进行请求的,在 postman 中请求加密的es就比较麻烦一点,要在 request head 里新增Authorization
参数。
在浏览器中请求 es 的首页,也就是地址加端口,这时候会让你输入用户名和密码,当输入后,会跳转到首页。
然后打开浏览器的调试功能,从该请求中获取到Authorization
参数,如下:
因为在 es 的配置文件中,选用的加密方式为 basic,也就是该项xpack.license.self_generated.type: basic
,
所以我们也可以对用户名密码进行手动加密,访问 https://www.base64encode.org/
地址,在输入框中输入elastic:123456
,进行加密,并在头部加上Basic
字符串就是最终的Authorization的值了,该值与第一种方式获取的是一致的。
获取到Authorization
以后,在 postman 进行设置,即可如常访问:
评论