前提是:已经搭建起来集群了,并且集群可以正常运行。所有的节点都是健康的状态。
另外我所有的操作都是直接使用启动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 &