ElasticSearch7.8.0搭建集群时配置CA证书

  • A+
所属分类:系统文档

在前面的章节中的文章中,在Centos7环境中安装了ES7.8.0集群并进行日志的收集

ES安装好之后,需要为ES配置访问授权账号密码

因为部分原因,导致此篇文章被遗漏~

在实际搭建ES集群的时候,启动日志中会不停的刷错误日志,大体内容为:

SSLHandshakeException: no cipher suites in common
和
SSLException: Received fatal alert: handshake_failure

当关闭其他节点只保留一个节点时,此问题得以消失;

出现此问题主要是因为开启了xpack.security.transport.ssl.enabled配置后,在集群时,建立ssl连接需要配置授权访问,授权访问需要配置ca证书,为每个节点配置ca证书后,问题可以得到修复

为保证ES各节点间数据通信安全,我们需要为每个es节点配置认证证书;详细博客参考https://www.cnblogs.com/chong-zuo3322/p/13387706.html

我们有三个几点,在任意一个节点上,生成证书即可,然后发送到另外两个节点上;

第一步:生成证书

我们在ES的根路径下,执行

bin/elasticsearch-certutil ca

生成ca证书,在期间,会提示我们输入生成文件名(可直接回车跳过),提示我们输入证书密码(可直接回车跳过,也可以设置一个密码,密码尽量统一);

这样,我们就可以得到一个以.p12结尾的ca证书,其文件名默认为elastic-stack-ca.p12

第二步:对生成的证书进行验证

在ES的根路径下,执行

bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12  #依次输入上一个步骤的密码。回车(文件使用默认名),密码(建议与上一步密码相同)

bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password    #并输入第一步输入的密码 

bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password  #并输入第一步输入的密码 

此时,我们一共将得到3个文件,分别是elastic-certificates.p12、elasticsearch.keystore、elastic-stack-ca.p12;

我们将这三个文件拷贝到conf目录下,同时,将这三个文件也拷贝到另外两个节点的conf路径下

同时,基于前面的配置文件,我们在每个节点的es配置文件elasticsearch.yml文件中新增如下配置,关于xpack的配置如下

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /data/elasticsearch-7.8.0/config/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /data/elasticsearch-7.8.0/config/elastic-certificates.p12

配置修改完成后,重启es服务,重启成功后;

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin