首页 > 其他分享 >ES_CCS/R(一):建立集群之间的安全互信

ES_CCS/R(一):建立集群之间的安全互信

时间:2023-02-05 16:11:33浏览次数:40  
标签:证书 CA CCS 集群 互信 Elasticsearch ES

为了能够实现 CCR(跨集群复制 Cross-cluster replication) 及 CCS(跨集群搜索 Cross-cluster search ),我们必须让集群之间能够互信,这样才可以建立集群之间的连接。以通过以下方式建立集群之间的互信。在用于执行跨集群搜索的集群(本地集群)和所有远程集群之间启用信任关系。

  • 使用相同的证书颁发机构为所有连接的群集生成证书,或者
  • 从本地群集中将 CA 证书添加为每个远程群集中的受信任 CA(请参阅传输 TLS 设置)
  • 如果你是两个不同证书的集群,你可以在 elasticsearch.yml 中的 xpack.security.transport.ssl.certificate_authorities 添加对方的证书而得到受信,或者通过添加证书到 truststore 来实现。

集群之间的互信是通过 transport 层来实现的:

如上图,Elasticsearch 中有两种重要的网络通信机制:

  • HTTP:用于 HTTP 通信绑定的地址和端口,这是 Elasticsearch REST API 公开的方式
  • transport:用于集群内节点之间的内部通信

 

 操作示例:

1、分别安装两个不同的集群并启动,配置如下:

 

  • 如上所示,有两个单节点的集群。它们分别位于两个不同的机器上。为了能够让它们建立互相,必须按照上面的方式来进行配置。

2、配置:config/elasticsearch.yml

 

 

 3、创建集群互信:为上面的两个集群创建同样的一个证书。这是一个最容易的方案。安装证书可参考文章 “Elasticsearch:使用不同的 CA 更新安全证书 (一)” 来更新 CA 证书。在更新的过程中,我们必须注意的是:

  • 在所有的集群中,都使用同样的 CA 证书:ca.crt 及 ca.key
  • 在各自的集群的节点上,分别使用证书来生成 transport 层的证书,并导入到 CA 信任库 truststore

 4、创建集群远程连接

  • 添加远程集群,如下图:

 5、验证:

  •  

参考:


标签:证书,CA,CCS,集群,互信,Elasticsearch,ES
From: https://www.cnblogs.com/tgzhu/p/17090460.html

相关文章

  • 洛谷P9035 Pont des souvenirs 题解
    题面很简洁,这里不做多说。70pts做法首先考虑到\(a_{n-1}\)和\(a_n\)两项是整个数列\(a\)中的最大的两项,所以若\(a_{n-1}+a_n\)不超过\(k+1\),则数列中任意两项......
  • python-pytest.ini介绍
    一、pytest.ini执行方式含义[pytest]addopts=-vsq--html=./report.htmltestpaths=./testConftestpython_files=test*.pypython_classes=Test*python_func......
  • npm i 安装依赖后,项目目录文件没有显示node_modules
    问题描述:npmi依赖安装成功,但是项目目录文件没有显示node_modules(之前我npmi,直接就是安装到当前项目目录,这次不知为何,仅仅是把package.lock.js文件删除掉后再npmi就直接......
  • 容器报错docker: Error response from daemon: driver failed programming external c
    在启动容器时的容器时,会出现报错:Errorresponsefromdaemon:driverfailedprogrammingexternalconnectivityonendpointXXX(端口映射或启动容器时报错)  原因:在......
  • coderforces E - AND-MEX Walk
    很好的题[观察样例发现只有0,1,2大胆猜测是不是也只会有0,1,2如果不是的话说明某条路径上出现过0,1,2,且是以2,1,0的情况出现的但是2的末尾是0,和1&不可能得到1,所以假设不成立]......
  • Codeforces Round #849 (Div. 4) A~G1
    欢乐场hhA.询问给定串是否是codeforces的子串voidsolve(){strings="codeforces";stringa;cin>>a;string::size_typeidx;idx=s.find(a);/......
  • 面试题: es6新增内容
    **1.letconst****2.symbol****3.解构赋值**答:解构赋值语法是一种Javascript表达式。通过解构赋值,可以将属性/值从对象/数组中取出,赋值给其他变量**4.模板字......
  • 7.1【微信小程序全栈开发课程】 小程序上线--Eslint格式规范
    在第2.2节我们注释代码规避了ESlint格式错误,现在将代码取消注释,将Eslint格式格式问题统一修改ps:这一节跳过也可以,不进行Eslint格式规范,小程序项目上线后也可以正常运行1、取......
  • 加载 .properties文件
    加载这个properties文件:   1.开启context命名空间  2.使用<context加载properties文件  3.读取值     ......
  • 3.5正则表达式和EXCESS系统
    尾数部分使用正则表达式(按照特定的规则来表示数据的形式即为正则表达式,除小数外,字符串以及数据库等都有各自的正则表达式),可以将表现形式多样的浮点数统一为一种表现形式。......