elasticsearch的安全通讯配置,官网文档说明比较零散,尤其是几种组件如kibana、fleetserver、各类agent、beat采用的处理方式都不一样,这里针对利用elasticsearch自带证书工具创建CA的方式,归集一下配置要点,希望能有所帮助。
一、基本知识
1、默认情况下,服务器将使用两个端口进行通讯,9300与9200:
9300,用于elasticsearch服务器集群内各服务器节点间的通讯。
9200,用于http通讯,各类restful客户端,例如kibana,浏览器直接访问、agent等等需要通过该端口与服务器连接。
2、如果首次使用yum或者rpm按装elasticsearch服务器,安装程序会自动进行安全配置,并生成几个安全配置需要的文件,如ca的keystore、用于http加密通讯的keystore(http.p12)等,这些最好保留下来,当然,你也可以用它提供的证书工具在后面自行创建。留意,如果不是首次安装,又希望系统再次自动生成安全配置,需要先把/var/lib/elasticsearch里的东西删除干净。
3、通过自动安全配置生成的几个文件会放在/usr/share/elasticsearch下:
elastic-stack-ca.p12 keystore文件,存储了ca的公共证书及用于签发其他证书的密钥。
transport.p12 包含了传输层密钥和证书,用于elasticsearch节点间加密通讯。
http.p12 这个keystore存储着http加密通讯需要的证书和密钥。
http_ca.crt 证书文件,用于集群内的http通讯加密。
二、配置要点(以下elasticsearch服务简称es服务器)
1、创建CA
(yum/rpm方式安装的es,其自带的工具都放在/usr/share/elasticsearch/bin里面。)
./elasticsearch-certutil ca
按提示操作即可,我这里选择了不改名字、不加密码。完成后该工具会在上一级文件夹(即/usr/share/elasticsearch)里生成elastic-stack-ca.p12文件。这个文件将用于签署其他证书,非常重要。
2、启用elasticsearch节点间加密通讯:
2.1、创建用于节点间加密的keystore
把上面的CA文件复制到需要加入集群的节点服务器,使用certutil工具生成节点keystore文件,如下:
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
按提示操作,为了方便,我没改默认文件名,但为了后面说明keystore工具的使用,我在这里添加了密码:abcdef
完成后生成keystore文件elastic-certificates.p

本文详细介绍了如何使用Elasticsearch自带工具创建CA,配置节点间和HTTP加密,包括与Kibana、fleetserver、beat的整合,确保安全通讯并解决常见配置问题。
最低0.47元/天 解锁文章
1080





