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

打印 上一主题 下一主题

主题 724|帖子 724|积分 2172

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

前言

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 检察

  • 进入容器
    1. docker exec -it es01 bash
    复制代码
  • 调用elasticsearch-certutil接口
    为 Elastic Stack 设置基本安全性 |Elasticsearch 指南 [8.17] |弹性的
    1. # 本处采用通过的elasticsearch-certutil方式
    2. cd /usr/share/elasticsearch
    3. # 签发ca证书:输入证书文件名、密码,一般我们直接回车就行,命令执行完后,会在~目录下生成一个ca证书:elastic-stack-ca.p12
    4. ./bin/elasticsearch-certutil ca
    5. # 生成第二个证书文件:elastic-certifacates.p12
    6. # 要求输入 CA 的密码,如果在上一步中未配置密码,直接按 Enter
    7. ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
    8. # 将这个elastic-certifacates.p12 文件复制到config目录下
    9. mkdir config/certs
    10. mv *.p12 config/certs
    复制代码
  • 增加集群配置1:集群间通信TLS
    1. [root@seeone bigdata]# cat es/es01/config/elasticsearch.yml
    2. # 新增集群名称
    3. cluster.name: es-cluster
    4. node.name: es01
    5. http.host: 0.0.0.0
    6. http.cors.enabled: true
    7. http.cors.allow-origin: "*"
    8. xpack.security.enabled: true
    9. xpack.security.http.ssl:
    10.   enabled: false
    11. # 增加以下几行
    12. xpack.security.transport.ssl.enabled: true
    13. xpack.security.transport.ssl.verification_mode: certificate
    14. xpack.security.transport.ssl.client_authentication: required
    15. # 前面生成的文件
    16. xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
    17. xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
    复制代码
  • 增加集群配置2:加密es和浏览器的流量
    为 Elastic Stack 设置基本安全性以及受掩护的 HTTPS 流量 |Elasticsearch 指南 [8.17] |弹性的
    1. # 按照官网流程
    2. ./bin/elasticsearch-certutil http
    复制代码

    docker 部署的话必要在f.步调增加宿主机IP地址
    1. # 最后会生成压缩文件,此压缩文件 包含 Elasticsearch 和 Kibana 的一个目录
    2. /elasticsearch
    3. |_ README.txt
    4. |_ http.p12
    5. |_ sample-elasticsearch.yml
    6. /kibana
    7. |_ README.txt
    8. |_ elasticsearch-ca.pem
    9. |_ sample-kibana.yml
    10. # 复制到对应目录
    11. mv elasticsearch/es01/http.p12 config/certs
    12. # es增加配置
    13. xpack.security.http.ssl.enabled: true
    14. xpack.security.http.ssl.keystore.path: http.p12
    15. [root@seeone config]# cat elasticsearch.yml
    16. cluster.name: es-cluster
    17. node.name: es01
    18. http.host: 0.0.0.0
    19. http.cors.enabled: true
    20. http.cors.allow-origin: "*"
    21. xpack.security.enabled: true
    22. xpack.security.http.ssl:
    23.   enabled: true
    24.   keystore.path: certs/http.p12
    25. xpack.security.transport.ssl.enabled: true
    26. xpack.security.transport.ssl.verification_mode: certificate
    27. xpack.security.transport.ssl.client_authentication: required
    28. xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
    29. xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
    复制代码

  • 增加集群配置3:加密kibana和es之间的流量
    1. # 将前面生成的这个文件elasticsearch-ca.pem 复制出来,然后在kibana.yml里面加个配置
    2. elasticsearch.ssl.certificateAuthorities: $KBN_PATH_CONF/elasticsearch-ca.pem
    3. [root@seeone config]# cat kibana.yml
    4. server.name: kibana
    5. server.host: "0.0.0.0"
    6. elasticsearch.hosts: [ "https://192.168.56.57:19200" ]
    7. elasticsearch.ssl.certificateAuthorities: /usr/share/kibana/config/certs/elasticsearch-ca.pem
    8. elasticsearch.username: 'kibana_system'
    9. elasticsearch.password: 'Qianyue@2024'
    10. xpack.monitoring.ui.container.elasticsearch.enabled: true
    11. i18n.locale: "zh-CN"
    复制代码
    打开网页验证一下

    1. # 可能需要重新创建一下账号
    2. 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到浏览器之间的流量
    1. # 为 Kibana 生成服务器证书和私钥。
    2. ./bin/elasticsearch-certutil csr -name kibana-server -dns qianyue-kibana.com,www.qianyue-kibana.com
    3. # 可能还是要输入一个文件名
    4. #-------------------------------------------------------------------------
    5. #    ...
    6. #    Please enter the desired output file [csr-bundle.zip]:   //直接回车
    7. #    ...
    8. #-------------------------------------------------------------------------
    9. # 会得到文件csr-bundle.zip
    10. # 解压
    11. elasticsearch@es01:~$ unzip csr-bundle.zip
    12. Archive:  csr-bundle.zip
    13.    creating: kibana-server/
    14.   inflating: kibana-server/kibana-server.csr  
    15.   inflating: kibana-server/kibana-server.key
    16. # 复制到指定位置
    17. # 用命令创建CRT证书
    18. openssl x509 -req -in kibana-server.csr -signkey kibana-server.key -out kibana-server.crt
    19. # kibana增加配置
    20. [root@seeone config]# cat kibana.yml
    21. server.name: kibana
    22. server.host: "0.0.0.0"
    23. elasticsearch.hosts: [ "https://192.168.56.57:19200" ]
    24. elasticsearch.ssl.certificateAuthorities: /usr/share/kibana/config/certs/elasticsearch-ca.pem
    25. elasticsearch.username: 'kibana_system'
    26. elasticsearch.password: 'Qianyue@2024'
    27. # 增加3行
    28. server.ssl.enabled: true
    29. server.ssl.certificate: /usr/share/kibana/config/certs/kibana-server.crt
    30. server.ssl.key: /usr/share/kibana/config/certs/kibana-server.key
    31. xpack.monitoring.ui.container.elasticsearch.enabled: true
    32. i18n.locale: "zh-CN"
    复制代码
  • 浏览器验证

  • 部署完成!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

雁过留声

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表