为了能够实现 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