elastic学习-本地kibana通过安全证书连接远程elasticsearch

1. 需要的证书文件

1.1 前情提要

原因是阿里云服务器内存资源有限,实在是养不起kibana,所以只在阿里云部署es,在本地计算机启动一个kibana来连接;
当然也可以是elasticsearch-head或者elasticvue浏览器插件的.

1.2 需要的3个文件

kibana通过证书访问远程es需要这3个文件:crt/csr/key
主要是本地kibana需要这三个配置, 所以后面生成这3个文件之后, 要下载下来, 放到本地kibana/config目录下,配置上全路径:

elasticsearch.ssl.certificate: d:/xxx/kiana/config/kibana.crt
elasticsearch.ssl.key: d:/xxx/kiana/config/kibana.key
elasticsearch.ssl.certificateAuthorities: [ "d:/xxx/kiana/config/elasticsearch-ca.pem" ]

2. 证书的生成

  • csr/key/crt生成都需在es所在服务器上!

2.1 生成csr/key证书

bin/elasticsearch-certutil csr -name kibana -dns myhost
#会在es的根目录下生成 csr-bundle.zip 文件, `unzip csr-bundle.zip`解压开:
#会有2个文件: 
  • kibana/kibana.csr
  • kibana/kibana.key

2.2 生成crt证书

openssl x509 -req -in kibana.csr -signkey kibana.key -out kibana.crt
# 会生成crt文件:
  • kibana.crt

3. 本地kibana配置文件

server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["https://myhost.com:9200"]
#不能使用elastic账号,elastic账号是管理员账号
#可以通过`bin/elasticsearch-certutil -u kibana -i`自定义一对账密
elasticsearch.username: "kibana"
elasticsearch.password: "mypassword"
#配置下面3个证书文件(服务器es上生成的crt/key/pem)
elasticsearch.ssl.verificationMode: none
elasticsearch.ssl.certificate: D:/_tmp/kibana-8.5.2/config/kibana.crt
elasticsearch.ssl.key: D:/_tmp/kibana-8.5.2/config/kibana.key
elasticsearch.ssl.certificateAuthorities: [ "D:/_tmp/kibana-8.5.2/config/elasticsearch-ca.pem" ]
上面就是本地kibana.yml的全部配置, 然后直接启动即可连接.

4. 备注说明

  • 服务器hostname=myhost
  • 服务器域名=myhost.com
  • 如果还不行,可能还需要服务es支持cors,因为之前配置elasticvue和head插件已经配置了,这里没写,服务器es主要配置如下:
cluster.name: my-cluster
node.name: node-1
path.data: /xxx/es-8.5.2/data
path.logs: /xxx/es-8.5.2/logs
# 设置网络访问节点
network.host: myhost
# 设置网络访问端口
http.port: 9200 
# 安全认证
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
# http的认证
xpack.security.http.ssl: 
 enabled: true
 keystore.path: /xxx/es-8.5.2/config/certs/http.p12
 truststore.path: /xxx/es-8.5.2/config/certs/http.p12
# 传输认证
xpack.security.transport.ssl: 
 enabled: true
 verification_mode: certificate
 keystore.path: /xxx/es-8.5.2/config/certs/elastic-certificates.p12
 truststore.path: /xxx/es-8.5.2/config/certs/elastic-certificates.p12
# 此处注意, node-1是上面配置的节点名称
cluster.initial_master_nodes: ["node-1"]
http.host: [_local_, _site_]
ingest.geoip.downloader.enabled: false
xpack.security.http.ssl.client_authentication: none
#elasticvue/head/kibana
http.cors.enabled: true
http.cors.allow-origin: "*"
# elasticvue/head/kibana:
http.cors.allow-headers: X-Requested-With,Content-Type,Content-Length,Authorization
作者:niewj原文地址:https://segmentfault.com/a/1190000043202657

%s 个评论

要回复文章请先登录注册