[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可以理解為存放應用簽名的檔案。