前提是:已经搭建起来集群了,并且集群可以正常运行。所有的节点都是健康的状态。
另外我所有的操作都是直接使用启动es集群的用户做的,如果不是这个用户的话,对生成的证书还需要赋予可执行权限。
# # 生成证书,给集群添加证书认证
生成证书不需关注集群是否启动。也就是不管集群有没有启动,都可以生成证书。
先进到 bin 目录下:
然后执行(执行这个的时候,全部回车就可以,不再对证书设置密码,如果这里再设置其他的密码的话,需要在yml里边加其他的配置,我用没有加的方式) : ./elasticsearch-certutil ca
这样运行则会在:如下图,生成一个
接着还在 bin 目录下执行(还是一路直接回车,因为上边就没有设置密码):./elasticsearch-certutil cert --ca elastic-stack-ca.p12
会生成第二个证书文件:
接着把这个证书文件 cp 到 config 目录下
如果你有多个节点的话,则每个节点的的config 下边都需要放一份 证书文件,或者配置文件,直接指定这同一份证书文件。
# # 修改 config 里边的配置文件
添加如下的配置:
# 开启安全认证 xpack.security.enabled: true # 开启ssl xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate # 生成ca证书 xpack.security.transport.ssl.keystore.path: /es/elasticsearch-7.5.0/config/elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: /es/elasticsearch-7.5.0/config/elastic-certificates.p12然后这个时候就需要重新启动集群了,重启集群配置才能生效。
这个时候应该成功,自己去 logs 日志文件里边查看一下集群是否正常启动
# # 添加用户名和密码
接下来还是到 bin下边执行,需要分别设置几个密码,可以设置成相同的。
# 配置密码 ./elasticsearch-setup-passwords interactive [angus@Server bin]#./elasticsearch-setup-passwords interactive Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user. You will be prompted to enter passwords as the process progresses. Please confirm that you would like to continue [y/N]y Enter password for [elastic]: Reenter password for [elastic]: Passwords do not match. Try again. Enter password for [elastic]: Reenter password for [elastic]: Enter password for [apm_system]: Reenter password for [apm_system]: Enter password for [kibana]: Reenter password for [kibana]: Enter password for [logstash_system]: Reenter password for [logstash_system]: Enter password for [beats_system]: Reenter password for [beats_system]: Enter password for [remote_monitoring_user]: Reenter password for [remote_monitoring_user]: Changed password for user [apm_system] Changed password for user [kibana] Changed password for user [logstash_system] Changed password for user [beats_system] Changed password for user [remote_monitoring_user] Changed password for user [elastic]# # 开启 走https 请求(所有的请求必须走 https )
还是修改 config 下边的 elasticsearch.yml 文件
xpack.security.http.ssl.enabled: true xpack.security.http.ssl.keystore.path: /es/elasticsearch-7.5.0/config/elastic-certificates.p12 xpack.security.http.ssl.truststore.path: /es/elasticsearch-7.5.0/config/elastic-certificates.p12
# # 修改完上边的,就会发现,kibana连不上了,需要修改kibana 的配置文件
到 存放我们生成的证书的目录下去,也就是 config 下边,然后执行命令 openssl pkcs12 -in elastic-certificates.p12 -cacerts -nokeys -out elastic-ca.pem 则会生成一个文件如下:
然后
pwd看一下当前的路径,然后修养kibana 的配置文件
vim kibana.yml server.host: 0.0.0.0 // ip 替换成自己的ip elasticsearch.hosts: ["https://10.10.10.10:9200"] elasticsearch.username: kibana // 密码替换成自己在上边生成的密码 elasticsearch.password: 111 //path替换成 pwd 查看出来的路径,也就是我们生成的 elastic-ca.pem 证书的路径 elasticsearch.ssl.certificateAuthorities: ["path/elastic-ca.pem"] elasticsearch.ssl.verificationMode: certificate然后可以启动 kibana了,去kibana 的bin目录下执行,然后查看日志的结果
./kibana > kibana.log &如果之前已经启动过kibana了:使用这个命令
lsof -i:5601(5601 还是kibana 默认的端口号,如果没有改过就是5601,如果自己改过,就用自己的)
可以查看出来 kibana的 进程号,然后
kill -9 进程号进程号如下:
然后重启kibana
./kibana > kibana.log &