官方给的消息是从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'
来源:oschina
链接:https://my.oschina.net/javagg/blog/4462395