elastic学习-elastic stack 基础安全(transport层)

[TOC]

一、elastic stack 基础安全

1. 生成证书

1.1 时机: 启动Elasticsearch之前

1.2 借助certutil工具-生成ca证书

./bin/elasticsearch-certutil ca
证书文件名为: elastic-stack-ca.p12

1.3 借助certutil工具-生成证书(在任一节点)

./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
证书名为: elastic-certificates.p12

1.4 将elastic-certificates.p12证书copy到所有node的config下

2. 利用生成证书-加密节点间通信

2.1 elasticsearch.yml:配置cluster.name

# 集群内的节点name相同
cluster.name: my-cluster

2.2 elasticsearch.yml:配置node.name

# 每个节点不同
node.name: node1

2.3 elasticsearch.yml:加入certificate配置:

因为使用了ca证书制作颁发的certificates证书,verification mode就指定它, 后面还有ca生成的http证书, 配置就是http的(后面再说)
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate 
xpack.security.transport.ssl.client_authentication: required
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

2.4. 前面3个步骤在所有节点上操作完

3. 在所有的节点上, start elasticsearch


4.关于证书文件的说明

4.1 elastic-stack-ca.p12 包含

    1. 你的CA的公共证书
    1. 你要为各节点签署证书要用的私钥

4.2 elastic-certificates.p12

这个文件是一个 keystore 文件, 包含:

    1. 节点证书
    1. 节点私钥key
    1. CA证书(可易理解为后面有我就不用ca了)

4.3 keystore 是什么

密钥(key)和证书(certificates)存在一个文件中称为keystore。
在keystore里,包含两种数据:

  • 密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)
  • 可信任的证书实体(trusted certificate entries)——只包含公钥

Keystore可以理解为存放应用签名的文件。

你可能感兴趣的:(elasticsearch)