文章目录
图解
第一部分 集群内部的加密通信
一,在config/elasticsearch.yml文件中开启配置
xpack.security.audit.enabled: true
#xpack.security.enabled: truexpack.license.self_generated.type: basic
# 如果是basic license的话需要加入下面这一行,不然的话restart elasticsearch之后会报错。
xpack.security.transport.ssl.enabled: true
xpack.security.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
二,用es自带的根据生成证书
2.1 生成证书
bin/elasticsearch-certutil ca
在执行命令的过程中,需要输入密码,开发、本地环境可以不设,直接按回车。
2.2 根据证书生成密钥
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
将产生新文件 elastic-certificates.p12,此文件就是在elasticsearch中配置的密钥文件。
系统还会提示你输入密码,你可以输入证书和密钥的密码,也可以按Enter键将密码留空。默认情况下 elasticsearch-certutil 生成没有主机名信息的证书,这意味着你可以将证书用于集群中的每个节点,另外要关闭主机名验证。(elastic-certificates.p12生成后移动到config目录下)
三,es启动成功后,执行命令设置内置账户密码
bin/elasticsearch-setup-passwrod interactive
忘记密码重置:
第二部分 集群外部的加密通信
一,在config/elasticsearch.yml文件中开启配置
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.truststore.path: certs/elastic-certificates.p12
xpack.security.http.ssl.keystore.path: certs/elastic-certificates.p12
第三部分 kibana与es加密通信
p12文件在ELasticSearc配置中可以使用,但是在Kibana配置中无法使用。
根据Kibana的官方文档,当我们的ES集群使用了Https时,需要配置:
elasticsearch.ssl.certificateAuthorities: /path/to/your/cacert.pem
在配置ES时,签名证书是P12格式,不是.pem或者.crt(以上配置也可使用crt)格式。
为了完成配置,需要从P12文件导出crt格式的根签名公钥证书文件:
openssl pkcs12 -in xxxx-ca.p12 -clcerts -nokeys -out bas-ca.crt
在kibana.yml文件中配置:
elasticsearch.url: "https://10.8.23.90:9250"
#根授权证书
elasticsearch.ssl.certificateAuthorities: xxxx\bas-ca.crt
elasticsearch.ssl.verificationMode: certificate
第四部分 https连接kibana
1,执行命令 生成证书和key,默认生成在elasticsearch安装的根目录下。
elasticsearch-certutil ca --pem
生成的一个zip文件:elastic-stack-ca.zip
2,将生成文件解压到kibana的config目录下
unzip elastic-stack-ca.zip -d kibanadir/config
3,修改kibana.yml配置文件
server.ssl.enabled: true
server.ssl.certificate: ../config/certs/ca/ca.crt
server.ssl.key: ../config/certs/ca/ca.key
4,重启kibana通过https即可访问kibana
https://192.168.88.161:5601/