elasticsearch 开启密码验证,让你的数据不再裸奔

∥☆過路亽.° 提交于 2020-08-04 09:29:16

官方给的消息是从6.8 和 7.1 开始默认提供。这对于那些裸奔在互联网的搜索服务来说,绝对是一个好消息。

配置起来也很简单。

第一步:切换到elastsearch的目录下,使用下列命令生成证书

bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""

第二步:打开config/elasticsearch.yaml,在尾部添加下面一行代码:

 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

然后启动elasticsearch

第三步:新打开一个终端,使用cd命令切换到elasticsearch目录,然后使用 bin/elasticsearch-setup-passwords auto 命令自动生成好几个默认用户和密码。 如果想手动生成密码,则使用 bin/elasticsearch-setup-passwords interactive 命令。一般默认会生成好几个管理员账户,其中一个叫elastic的用户是超级管理员。

第四步:验证一下。打开浏览器,输入我们的elasticsearch的网址,比如本地的http://localhost:9200/ ,然后会弹出一个输入框,让我们输入账号和密码,输入后则可以看到一些介绍。

登录后

修改密码命令如下

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

 

TransportClient client = null;
			Settings settings = Settings.builder().put("cluster.name", "集群名")
					.put("client.transport.sniff", true).put("xpack.security.user", "elastic:123456").build();
			settings = Settings.builder().put("xpack.security.enabled", true)
					.put("xpack.security.user", "用户名:密码").put("xpack.security.transport.ssl.enabled", true)
					.put("xpack.security.transport.ssl.keystore.path", "上边p12文件路径")
					.put("xpack.security.transport.ssl.truststore.path", "p12文件路径")
					.put("xpack.security.transport.ssl.verification_mode", "certificate")
					.put("cluster.name", "tank-test-es").put("client.transport.sniff", true).build();
			client = new PreBuiltXPackTransportClient(settings);

注意,这里一定要用PreBuiltXPackTransportClient,
这个类可以引入xpack的包得到
    compile 'org.elasticsearch.client:x-pack-transport:7.8.1'

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!