【ELK】开启filebeat与ES之间TLS加密通信

一、测试环境

            系统:ubantu16.04

            filebeat版本:7.9.2

            ES版本:7.9.2

二、生成证书

           1、生成ca根证书

# 生成根证书的私钥
openssl genrsa -out ./ca.key

# 利用私钥生成一个根证书的申请,一般证书的申请格式都是csr。所以私钥和csr一般需要保存好
openssl req -new -key ca.key -out ca.csr

# 自签名的方式签发我们之前的申请的证书,生成的证书为ca.crt
openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt

### $path为openssl.cnf里面[ CA_default ]里面dir选项的值 ###

# 为我们的证书建立第一个序列号,一般都是用4个字符,这个不影响之后的证书颁发等操作
echo FACE(01) > $path/serial。

# 建立ca的证书库,不影响后面的操作,默认配置文件里也有存储的地方。
touch $path/index.txt

# 建立证书回收列表保存失效的证书 
openssl ca -gencrl -out ca.crl -crldays 7

# 已上就完成了根证书的相关操作,下一步可以颁发证书了。

# 生成和签发服务器身份验证证书,注意证书是自签名的,浏览器会提示不受信任

       2、生成服务器端证书

# 建立服务器验证证书的私钥
openssl genrsa -out server.key

# 生成证书申请文件,制作签发证书的请求文件时,需要输入Common Name参数,此参数一定为当前主机的IP地址,否则将会显示证书错误。
openssl req -new -key server.key -subj "/CN=本机IP" -out server.csr
# CN=后为本机IP

echo subjectAltName = IP:"本机IP" > extfile.cnf

# 利用根证书签发服务器身份验证证书
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out server.crt -days 5000

      3、生成客户端证书

# 生成私钥
openssl genrsa -des3 -out client.key 1024

# 生成证书请求文件
openssl req -new -key client.key -out  client.csr

# 签发证书
openssl ca -in client.csr -cert ca.crt -keyfile ca.key -out client.crt

      4、常见错误分析

             >       :unable to open '/etc/pki/CA/index.txt'

                       解决办法:touch /etc/pki/CA/index.txt。 类似文件找不到这种错误,直接按报错创建即可。

三、工具配置:

       1、ES配置

              >  配置config/elasticsearch.yml


xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: none
xpack.security.transport.ssl.key: /home/python/Desktop/elasticsearch-7.9.2/config/certs/server.key
xpack.security.transport.ssl.certificate: /home/python/Desktop/elasticsearch-7.9.2/config/certs/server.crt
xpack.security.transport.ssl.certificate_authorities: /home/python/Desktop/elasticsearch-7.9.2/config/certs/ca.crt


xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.key: /home/python/Desktop/elasticsearch-7.9.2/config/certs/server.key
xpack.security.http.ssl.certificate: /home/python/Desktop/elasticsearch-7.9.2/config/certs/server.crt
xpack.security.http.ssl.certificate_authorities: /home/python/Desktop/elasticsearch-7.9.2/config/certs/ca.crt

              >  配置elasticsearch密码

# 进入bin目录
./elasticsearch-setup-passwords interactive
# 一步步设置密码

       2、filebeat配置

                > 在output.elasticsearch中           

 #  配置好证书地址,协议和用户名,密码
  ssl.key: "/home/python/Desktop/filebeat-7.9.2-linux-x86_64/certs/client.key"
  ssl.certificate: "/home/python/Desktop/filebeat-7.9.2-linux-x86_64/certs/client.crt"
  ssl.certificate_authorities: ["/home/python/Desktop/filebeat-7.9.2-linux-x86_64/certs/ca.crt"]
  
  # Protocol - either `http` (default) or `https`.
  protocol: "https"

  # Authentication credentials - either API key or username/password.
  username: "elastic"
  password: "123456"

 

四、参考资料:

          es官方xpack配置文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.4/configuring-tls.html#node-certificates

          filebeat配置文档:https://www.elastic.co/guide/en/beats/filebeat/current/elasticsearch-output.html

          博客: 

                 >  x509: cannot validate certificate for address because it doesn't contain any IP SANs :

                 https://blog.csdn.net/min19900718/article/details/87920254

                 >  CA证书自签详解

                 https://blog.csdn.net/z344945251/article/details/72870129 

                > es设置密码

                 https://www.cnblogs.com/chenjiangbin/p/12061074.html

         

 

       

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值