单节点添加用户名密码配置方式

ES 6.8以后的版本自带一个叫 xpack 的安全功能,启用即开启了xpack的功能、模式、并且传输启用ssl。
第一步:
进入elasticsearch安装目录中的config目录,找到elasticsearch.yml ,加上以下配置项:

xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true

第二步:
重启ES服务,不会重启的参考下面的链接
重启办法参考1
重启办法参考2
第三步:
进入elasticsearch安装目录中的bin目录执行下面的命令。

 ./elasticsearch-setup-passwords interactive  

输入 y 确认修改密码
然后根据提示输入每个账号的密码即可
第四步:
修改程序中ES连接配置中的账号密码。

spring:
  elasticsearch:
    rest:
      uris: http://172.0.0.1:9200
      username: ***
      password: ***
      connection-timeout: 10s
      read-timeout: 10s

多节点添加用户名密码配置方式

步骤1
生成安全秘钥
进入ES安装目录下的bin目录,执行以下命令

./elasticsearch-certutil ca -out config/elastic-certificates.p12

注意,注意,注意。执行完以后,会让输入密码,这里不要输入密码,否则会增加以后的配置量。直接回车即可,不设置这个密码
执行完该命令后会在ES安装目录下的config文件夹中生成 elastic-certificates.p12 文件
使用chmod 777 elastic-certificates.p12 命令,放开此秘钥文件的权限

把这个秘钥文件复制到其他所有从节点的ES安装目录中的config目录下。
同时也都执行chmod 777 elastic-certificates.p12 命令,放开此秘钥文件的权限

步骤2
修改所有站点的elasticsearch.yml,添加几行配置。主节点和从节点都添加下面的配置

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

步骤3
重启ES,需要重启所有的节点。
重启完成后,检查集群是否正常,因为想要成功设置密码的话,必须确保集群状态正常才行,否则密码设置会失败。
访问这个地址 http://127.0.0.1:9200/_cluster/health 可以查看集群是否健康
步骤4
设置密码
执行ES安装目录中的bin目录下执行一下命令进行密码设置

./elasticsearch-setup-passwords interactive

在其中一个节点上设置密码即可。其余节点会自动设置。
设置完成后,访问http://127.0.0.1:9200,会弹出密码输入框。测试所有的从节点,都提示密码输入框。

参考:
参考文章1,单节点
参考文章2,多节点
参考文章3,多节点

Logo

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

更多推荐