elastic學習-elastic stack 基礎安全(transport層)

風雪十年燈發表於2023-04-13

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

相關文章