1. 关于xpack验证的问题
elasticsearch-certutil ca 生成elastic-stack-ca.p12 (默认名,密码为空)
elasticsearch-certutil.bat cert --ca elastic-stack-ca.p12 生成elastic-certificates.p12 (默认名 密码为空)
执行命令后,会在以下目录生成文件:会将这两个文件放在config/certs/里面
执行的命令:
接下来用 elasticsearch.bat正常启动即可:
用下面的密码就可以登录了: localhost:9200
开启https:把下面的配置改为true
至此就简单搭建好了
注意:如果再生成p12文件时用了密码,比如我用的是123456
则需要执行如下的命令,并输入对应的密码即可。
elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password
elasticsearch-keystore add xpack.security.http.ssl.truststore.secure_password
elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
2. 重置密码或者设置密码的时候一直报错:
最后是参考资料,将xpack改为false后启动es、然后删除.security-7索引、最后再将xpack.security.http.ssl.enable: false的位置改回true,重新启动es,就可以重置密码了
不过另一种解决方式就是生成(elasticsearch-certutil http) http证书:详情参考后面
3.xpack.security.enrollment.enabled为true的作用
此参数主要是启动时自动生成用户的密码,比如为elastic/kibina等生成注册token
enrollment.enabled要保持为false,不然启动又会自己注册token,那还要再清理.security-7索引
4. 但是修改密码时候还是报错:elasticsearch-reset-password.bat --username elastic -i
最后是关闭https然后启动es再修改密码就成功了,之后再改回来再重新启动才解决的。
5.如果只生成上面两种证书(.p12)再设置密码和修改密码挺麻烦:可以生成http证书
从报错信息 No subject alternative names present可以看出是生成的p12文件缺少信息导致:
执行命令,生成 https的p12文件
然后将http.p12文件复制到certs目录下,并修改配置文件,然后启动
可以看到成功修改。
那么我再用这个p12文件来验证下:setup-password的命令是否能正常
先将配置文件里xpack都改为false,然后启动es,删除索引.security-7
然后再将配置文件xpack改回来:我把enrollment.enabled也改后,启动后会自动执行注册token的命令,就不能执行setup-password了。
这个xpack.security.enrollment.enabled命令的作用就是自动注册token. 所以还是把它关闭掉,另外还要把刚才的索引再重新删除一遍。
最后配置如下:
启动后执行设置密码命令:成功执行
6. 记录下额外的配置:
xpack.license.self_generated.type: basic es的基本许可证(未验证此配置)
xpack.security.http.ssl.client_authentication:none 禁用客户端证书验证,默认就是none
参考文章:
【Error】elasticsearch修改密码报错,elasticsearch-setup-passwords interactive
elastic部署开启认证x-pack_xpack.security.transport.ssl.verification_mode-CSDN博客
Elasticsearch - Elasticsearch 8.X;Elasticsearch 8.X集群(十)_elasticsearch8 集群-CSDN博客
https://www.elastic.co/guide/en/elasticsearch/reference/current/security-settings.html