雁过留声 发表于 2024-12-26 15:39:59

【ELK】ES节点开启https【亲测可用】

提示:文章写完后,目次可以主动天生,怎样天生可参考右边的资助文档


前言

es版本8.14.3
这次ES部署到了正式生产情况,必要办理安全题目,特此记载,没看过上集兄弟的可以看看上集
【ELK】保姆级教程docker部署Elasticsearch+Kibana,必成
开始操作

1)配置利用自署名证书
注意:假如已有单节点es,想要将其转换升级为集群,必须要删除/data下的node数据,即清空data中的信息;配置证书仅在集群的第一台服务器node-01实行即可,其他服务器直接复制;elasticsearch天生证书有两种方式,elasticsearch-certgen 方式和elasticsearch-certutil方式,此中,


[*]第一种方式假如以后新增节点导致证书得重新天生并放到es所有节点,
[*]一般我们利用第2种;

[*] docker ps 检察
https://i-blog.csdnimg.cn/direct/794565865cd544cda6836ceefdfc953d.png
[*] 进入容器
docker exec -it es01 bash

[*] 调用elasticsearch-certutil接口
为 Elastic Stack 设置基本安全性 |Elasticsearch 指南 |弹性的
# 本处采用通过的elasticsearch-certutil方式
cd /usr/share/elasticsearch

# 签发ca证书:输入证书文件名、密码,一般我们直接回车就行,命令执行完后,会在~目录下生成一个ca证书:elastic-stack-ca.p12
./bin/elasticsearch-certutil ca

# 生成第二个证书文件:elastic-certifacates.p12
# 要求输入 CA 的密码,如果在上一步中未配置密码,直接按 Enter
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

# 将这个elastic-certifacates.p12 文件复制到config目录下
mkdir config/certs
mv *.p12 config/certs


[*] 增加集群配置1:集群间通信TLS
# cat es/es01/config/elasticsearch.yml
# 新增集群名称
cluster.name: es-cluster
node.name: es01
http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: true
xpack.security.http.ssl:
enabled: false
# 增加以下几行
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.client_authentication: required
# 前面生成的文件
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

[*] 增加集群配置2:加密es和浏览器的流量
为 Elastic Stack 设置基本安全性以及受掩护的 HTTPS 流量 |Elasticsearch 指南 |弹性的
# 按照官网流程
./bin/elasticsearch-certutil http
https://i-blog.csdnimg.cn/direct/73a71fdfcc9d45bf8808408c6cc34b03.png
docker 部署的话必要在f.步调增加宿主机IP地址
# 最后会生成压缩文件,此压缩文件 包含 Elasticsearch 和 Kibana 的一个目录
/elasticsearch
|_ README.txt
|_ http.p12
|_ sample-elasticsearch.yml

/kibana
|_ README.txt
|_ elasticsearch-ca.pem
|_ sample-kibana.yml

# 复制到对应目录
mv elasticsearch/es01/http.p12 config/certs
# es增加配置
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: http.p12



# cat elasticsearch.yml
cluster.name: es-cluster
node.name: es01
http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: true
xpack.security.http.ssl:
enabled: true
keystore.path: certs/http.p12
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.client_authentication: required
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

https://i-blog.csdnimg.cn/direct/7506b6e19e0c4574b47bcb3e7a266f42.png
[*] 增加集群配置3:加密kibana和es之间的流量
# 将前面生成的这个文件elasticsearch-ca.pem 复制出来,然后在kibana.yml里面加个配置
elasticsearch.ssl.certificateAuthorities: $KBN_PATH_CONF/elasticsearch-ca.pem

# cat kibana.yml
server.name: kibana
server.host: "0.0.0.0"
elasticsearch.hosts: [ "https://192.168.56.57:19200" ]
elasticsearch.ssl.certificateAuthorities: /usr/share/kibana/config/certs/elasticsearch-ca.pem
elasticsearch.username: 'kibana_system'
elasticsearch.password: 'Qianyue@2024'
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"
打开网页验证一下
https://i-blog.csdnimg.cn/direct/57f637b6aad04a649179e4373085eb6a.png
# 可能需要重新创建一下账号
curl -k -X PUT -u elastic:Qianyue@2024 "https://192.168.56.57:19200/_security/user/kibana_system/_password" -H 'Content-Type: application/json' -d'{"password": "Qianyue@2024"}'

[*] 增加集群配置4:加密kibana到浏览器之间的流量
# 为 Kibana 生成服务器证书和私钥。
./bin/elasticsearch-certutil csr -name kibana-server -dns qianyue-kibana.com,www.qianyue-kibana.com

# 可能还是要输入一个文件名
#-------------------------------------------------------------------------
#    ...
#    Please enter the desired output file :   //直接回车
#    ...
#-------------------------------------------------------------------------

# 会得到文件csr-bundle.zip
# 解压
elasticsearch@es01:~$ unzip csr-bundle.zip
Archive:csr-bundle.zip
   creating: kibana-server/
inflating: kibana-server/kibana-server.csr
inflating: kibana-server/kibana-server.key

# 复制到指定位置
# 用命令创建CRT证书
openssl x509 -req -in kibana-server.csr -signkey kibana-server.key -out kibana-server.crt

# kibana增加配置
# cat kibana.yml
server.name: kibana
server.host: "0.0.0.0"
elasticsearch.hosts: [ "https://192.168.56.57:19200" ]
elasticsearch.ssl.certificateAuthorities: /usr/share/kibana/config/certs/elasticsearch-ca.pem
elasticsearch.username: 'kibana_system'
elasticsearch.password: 'Qianyue@2024'

# 增加3行
server.ssl.enabled: true
server.ssl.certificate: /usr/share/kibana/config/certs/kibana-server.crt
server.ssl.key: /usr/share/kibana/config/certs/kibana-server.key

xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"


[*] 浏览器验证
https://i-blog.csdnimg.cn/direct/1ce0eee8ecbd4e8d9161c0ff250dfbae.png
[*] 部署完成!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【ELK】ES节点开启https【亲测可用】