前面用logstash的時候,由于elasticsearch證書格式不對,一直連不上,這里記錄一下關(guān)于證書的概念。
elasticsearch為了安全點,就需要開啟XPach 安全機制(SSL+密碼)。而從8.0版本開始,也默認(rèn)地簡化了安全功能,為用戶自動配置:用戶認(rèn)證、基于角色的訪問控制進行用戶授權(quán)、使用 TLS 加密的節(jié)點到節(jié)點通信、使用 HTTPS 與 Elasticsearch API 進行加密通信。
1. XPach 安全機制介紹:
- Elasticsearch 的 Xack安全機,制提供了一些強大的功能,用于保護 Elasticsearch 集群中的數(shù)據(jù)和系統(tǒng)。以下是 XPack 安全機制的一些主要功能1.用戶身份驗證 (Authentication):XPack允許您配置多種身份驗證方式,例如基于用戶名和密碼的認(rèn)證、LDAP認(rèn)證、Active Directov認(rèn)證等,以確保只有授權(quán)用戶可以訪問Elasticsearch 集群。
- 訪問控制(Authorization):Xpack 提供了細粒度的訪問控制功能,可以基于角色和權(quán)限來限制用戶對不同索引、文檔和操作的訪問權(quán)限。
3.傳輸層加密(Transport Layer Encryption):XPack 支持通過 SSL/TLS 加密保護節(jié)點之間的通信,防止數(shù)據(jù)在傳輸過程中被竊聽或篡改。
4.字段級別的安全(field-level Security):Xpack 允許您定義字段級別的安全策略,控制用戶對特定字段的訪問權(quán)限,確保敏感數(shù)據(jù)得到保護。
5.審計日志(Audit Logging):XPack 可以記錄所有用戶活動和系統(tǒng)操作,生成審計日志,幫助您跟蹤和監(jiān)控系統(tǒng)的安全狀況。
6.實時監(jiān)控(Real-time Monitoring):XPack 提供實時監(jiān)控功能,可以監(jiān)控集群和節(jié)點的運行狀況,幫助您及時發(fā)現(xiàn)和解決問題。
7.安全管理(Security Management):XPack 提供了一個集中式的安全管理界面,可以用于配置和管理所有的 XPack 安全功能。這些安全機制可以幫助您保護Elasticsearch集群中的數(shù)據(jù)安全,確保系統(tǒng)只被授權(quán)的用戶訪問,并防止數(shù)據(jù)泄露或篡改。
2. CA證書
在安裝Elasticsearch 時,我們單獨用一個服務(wù)來生成了證書。那證書怎么來理解的,過程是怎樣的?
CA證書一般都和ssl證書有關(guān)。這個證書的生成需要一定的資質(zhì),得到認(rèn)可才能使用生成證書來使用。
一般我們網(wǎng)站要設(shè)置ssl訪問,都是去阿里云申請ssl證書,注意雖然從阿里云申請,但對接的是一些能生產(chǎn)證書的公司。
在訪問https網(wǎng)站的時候,我們的瀏覽器有時會提示 證書過期、不受信任等消息。是因為我們?yōu)g覽器里面已經(jīng)內(nèi)置了一些值得信任的能生產(chǎn)證書的廠商,認(rèn)為用他們的證書就安全(申請證書需要填身份信息),并且內(nèi)置了這些廠商的公開的公鑰證書(CA證書)用來驗證我們訪問的服務(wù)器網(wǎng)站https連接。這里面涉及到2個概念,大家要弄清楚:1個是 網(wǎng)站服務(wù)器 用的證書(ssl證書),還有一個是 驗證網(wǎng)站服務(wù)器證書的 CA證書。

- CA證書(Certificate Authority Certificate):服務(wù)器證書認(rèn)證機構(gòu)(CA)簽發(fā)的證書,用于驗證服務(wù)器證書的真實性。瀏覽器或客戶端會在與服務(wù)器建立連接時檢查其證書是否被受信任的CA機構(gòu)簽發(fā)。
- 服務(wù)器證書(Server Certificate):是一種服務(wù)器證書,用于驗證服務(wù)器的身份和提供公鑰給客戶端,以進行數(shù)據(jù)加密和認(rèn)證。
- CA指紋(Certificate Authority Fingerprint):指由CA簽發(fā)的證書的數(shù)字指紋,用于驗證證書的真實性
3. elasticsearch-certutil
我們是用elasticsearch-certutil工具來生成證書的,主要分為2步。
elasticsearch-certutil就相當(dāng)于一個獲得認(rèn)可的 證書機構(gòu),要先用它來生產(chǎn) CA 證書,然后再 關(guān)聯(lián) CA 證書生成 服務(wù)器證書 給elasticsearch服務(wù)用。
- 生成CA證書:
# elasticsearch-certutil ca 命令: -out 指定了輸出目錄
elasticsearch-certutil ca --silent --pem -out config/certs/ca.zip
默認(rèn)生成.p12格式的,這里指定了 pem,但是實際是 ca.crt(可以直接把后綴改成pem)
ca.crt相當(dāng)于公鑰
ca.key相當(dāng)于私鑰
- 生成服務(wù)器證書
要用到第一步的CA證書
- 生成服務(wù)器證書
# elasticsearch-certutil cert 命令:--in 指定了配置文件,--ca-cert 和 --ca-key分別指定了 CA證書的 公鑰和私鑰,到時候 其他連接 elasticsearch的就可以拿ca.crt來驗證了
elasticsearch-certutil cert --silent --pem -out config/certs/certs.zip --in config/certs/instances.yml --ca-cert config/certs/ca/ca.crt --ca-key config/certs/ca/ca.key
配置文件:instances.yml
instances:
- name: es01
dns:
# es01 一般是hostname,這樣就可以用https://es01:9200訪問了
- es01
- localhost
ip:
- 172.18.0.11
- name: es02
dns:
- es02
- localhost
ip:
- 172.18.0.12
- name: es03
dns:
- es03
- localhost
ip:
- 172.18.0.13