制作目的
在上一篇《elasticsearch7.X x-pack破解》中,我們啟用了x-pack模塊,elasticsearch集群中,如果使用了x-pack,那么集群中的各節點之間通訊就必須安全認證。為了解決節點間通訊的認證問,我們需要制作證書。
內容簡介
本文的主要內容是指導SSL制作過程。
步驟
生成證書
一、cd到es安裝目錄下,執行命令:
cd /root/tools/elasticsearch-7.12.0 bin/elasticsearch-certutil ca
里先讓你輸入ca文件名,我已經生成過了,所以我的文件名就不能再用elastic-stack-ca.p12。然后需要輸入密碼,如:elastic-segi0409。
輸入完密碼后按回車,這時你的bin目錄下會有一個文件名為elastic-stack-ca.p13的密鑰庫生成,包含證書頒發機構證書信息和用於簽名的私鑰信息。
二、 創建私鑰:
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p13
這里需要輸入第一步設置的密碼(elastic-segi0409),然后再輸入輸出的文件名,如:elastic-certificates.p13,回車后bin目錄下會生成一個名為elastic-certificates.p13的文件
三、目錄配置
文件生成后,需要放入對應的目錄。創建certs目錄:mkdir config/certs,拷貝兩個文件到創建的目錄中,如:
證書拷貝至所有elasticsearch節點.把certs目錄scp到集群的所有節點
elasticsearch集群啟用SSL
在elasticsearch.yml中增加配置:
xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p13 xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p13
elasticsearch各節點為xpack.security.transport添加密碼
cd /root/tools/elasticsearch-7.12.0 bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
注意:密碼為創建證書時設置的密碼
重啟所有節點即可
如果登錄失敗,報錯: failed to authenticate user [elastic] 用如下命令重新生成密碼:
cd /root/tools/elasticsearch-7.12.0 ./bin/elasticsearch-setup-passwords auto