一文理清elasticsearch启动x-pack后的登录验证配置以及客户端代码的适配

本文详细介绍了如何配置Elasticsearch的x-pack安全特性,包括生成PKCS#12和PEM格式的证书,以及设置服务端和客户端的SSL验证。此外,还涉及到Kibana的适配,强调了在不同验证模式下的客户端连接配置。文章以实际操作为例,展示了在遇到不常见验证方式时的解决办法。

前言

       说起x-pack这个组件,不是什么新鲜的功能,其实在elasticsearch早期版本就已经有了,而且x-pack在功能对于elasticsearch的安全性来说也毋庸置疑,但是俗话说得好,一分钱难倒英雄汉,更何况花销的单位可能是数万甚至更多,所以早期在中国并没有被大规模普及,能用的要么是财大气粗的金融、银行以及运营商等重量级客户;要么是通过“其他渠道”偷偷使用的中小客户。“菜谱哥”可能注意到完全收费对于x-pack的发展起到了很大的制约,而且收入可能也没有预期那么理想,所以从elasticsearch 6.3版本以后,x-pack开始逐步开放免费功能。一石激起千层浪,凭借elasticsearch多年打下来的江山,x-pack的应用如雨后春笋般的席卷了elasticsearch圈,尤其是需要将elasticsearch的访问暴露在公网或者公有云的业务场景下。在此种场景下,作为elasticsearch重度用户的笔者的公司在做项目时,接触到用户的elasticsearch集群也五花八门,所以很多场景下,就会遇到连接了开启了x-pack的elasticsearch,所以本文的着眼点就是简单地讲解下x-pack设置elasticsearch访问保护以及相关的客户端代码适配的功能,其余的功能笔者也在学习,后续如果有成果的话,会及时分享

正文

     进入正题,下面将从elasticsearch的服务端配置以及transport-client客户端的适配两个方面来讲解下适配的过程,最后再讲解下kibana相关的适配:

elasticsearch的服务端配置

生成证书

         此处需要说明下,当前遇见过两种三类配置,可能还有其他的,这说明x-pack的认证还是很灵活的,但是带来的影响就是适配成本较高,尤其是刚接触一个自己不熟悉的客户的x-pack认证方式时候,如果这个认证方式还是小众的情况下,那就太酸爽了...

证书的类型分为PKCS#12格式(.p12)以及PEM格式(.crt或者.pem),生成方式如下:

  • PKCS#12

  进入elasticsearch的安装目录,执行下面的命令

bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""

  执行之后查看文件生成结果,进入config目录查看:

找到对应的文件 ,生成成功。

如果要指定client端登录的具体信息,限制client不能随意连接elasticsearch,则可以通过生成一个yaml文件,并在生成p12文件时作为输入即可:

[root@node1 cert_blog]# vi config/instance.yml
# 将实例信息添加到 yml 文件
instances:
  - name: 'node1'
    dns: [ 'node1.elastic.test.com' ]
  - name: "node2"
    dns: [ 'node2.elastic.test.com' ]
  - name: 'my-kibana'
    dns: [ 'kibana.local' ]
  - name: 'logstash'
    dns: [ 'logstash.local' ]

生成证书的命令变为:

bin/elasticsearch-certutil cert -in config/instance.yml -out config/elastic-certificates.p12 -pass ""

本文暂时未限制client相关的信息,所以后续也会在此基础上进行适配,至此 PKCS#12格式的验证文件生成完毕。

  • PEM

       pem方式比较特殊,可以使用elasticsearch自带工具生成的crt文件进行校验,也可以使用openssl生成的pem文件进行校验,前一种方式使用的较多,后一种使用的相对较少。笔者遇到的客户现场就是后一种方式,网上资料很少,在填了无数坑之后才搞定的...

使用elasticsearch-certutil生成crt文件

执行下面的命令:

bin/elasticsearch-certutil ca --pem

结果如下:

命令执行之后会生成一个zip文件,需要手动指定zip文件的存放地址,我指定的是:/home/elastic/elastic-stack-ca.zip

解压该文件,得到ca文件夹,文件夹中有两个文件:

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值