[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 包含
- 你的CA的公共证书
- 你要为各节点签署证书要用的私钥
4.2 elastic-certificates.p12
这个文件是一个 keystore 文件, 包含:
- 节点证书
- 节点私钥key
- CA证书(可易理解为后面有我就不用ca了)
4.3 keystore 是什么
密钥(key)和证书(certificates)存在一个文件中称为keystore。
在keystore里,包含两种数据:
- 密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)
- 可信任的证书实体(trusted certificate entries)——只包含公钥
Keystore可以理解为存放应用签名的文件。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。