随笔 - 368, 文章 - 0, 评论 - 56, 阅读 - 94万
  博客园  :: 首页  :: 联系 :: 管理

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

Posted on   天戈朱  阅读(467)  评论(0编辑  收藏  举报

为了能够实现 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、验证:

  •  

参考:


相关博文:
阅读排行:
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 全程使用 AI 从 0 到 1 写了个小工具
· 快收藏!一个技巧从此不再搞混缓存穿透和缓存击穿
· AI 插件第二弹,更强更好用
· Blazor Hybrid适配到HarmonyOS系统
点击右上角即可分享
微信分享提示