Elasticsearch安全集群构建的常见问题

集群之间的互信问题:

我们再使用ccs或者是ccr的时候,会出现集群之间的互信问题,这里的解决方式是,集群之间使用相同的跟CA机构颁发的证书就行了

方式一:

Elasticsearch:使用不同的 CA 更新安全证书 (一)_elastic-certificates.p12-CSDN博客Elasticsearch:使用不同的 CA 更新安全证书 (二)_elasticsearch-certutil-CSDN博客

方式二:

上面的方式保证了在生成证书elastic-stack-ca.p12时,不包含ca的私钥,更加的安全。

大家也可以参考es官方的方式解决这个问题:

Set up basic security for the Elastic Stack | Elasticsearch Guide [8.18] | Elastic

Set up basic security for the Elastic Stack plus secured HTTPS traffic | Elasticsearch Guide [8.18] | Elastic

生成enrollment失效问题

ES 节点的 HTTP 层 SSL 配置的 Keystore 不包含 PrivateKey 类型的证书。这里我使用命令给大家展示一下:

但是大家需要注意的是,如果想要使用下面的方式,上面进行互信的方式一定是第二种,也就是elastic-stack-ca.p12文件中一定要有ca的私钥,之后大家接着下面的操作进行执行就可以了。

首先,大家可以使用我们es自带的keystore工具查看:

复制代码
[elastic@localhost bin]$ pwd
/elasticsearch/es9200/jdk/bin
[elastic@localhost bin]$ ./keytool -keystore /elasticsearch/es9200/config/certs/http.p12 -list
输入密钥库口令:
密钥库类型: PKCS12
密钥库提供方: SUN

您的密钥库包含 2 个条目

ca, 2026年5月25日, trustedCertEntry,
证书指纹 (SHA-256): B7:86:B4:37:02:1C:06:78:23:C8:BC:35:2D:3D:BD:4B:B6:8D:A6:AF:62:B1:B8:5F:5C:CA:5C:73:4A:70:91:B0
http, 2026年5月22日, PrivateKeyEntry,
证书指纹 (SHA-256): 7F:1E:DA:9F:AD:F0:8B:80:5E:AD:50:21:91:BC:78:9B:67:A3:9D:21:57:7C:D0:B5:94:34:A0:85:2F:1F:C4:04

其中的 TrustedCertEntry 是在官方文档 Basic Security plus HTTPS 步骤中生成 HTTP PKCS12 Keystore 时,使用在 Basic Security 步骤生成的 Keystore 作为 CA Cert 自动导入的。

但 ES 需要的是一个证书颁发机构提供的 PrivateKeyEntry,也就是说,你需要的是像下面这样的输出:

http_ca, Sep 6, 2022, PrivateKeyEntry,
Certificate fingerprint (SHA-256): 9E:56:B1:38:F7:49:C7:7D:07:F0:E1:8A:D6:EC:9B:56:DF:86:7D:D6:90:46:86:77:99:6B:D1:9E:9C:4F:F0:03

因此我们把上面 TrustedCertEntry 替换为 PrivateKeyEntry 即可。

接着执行如下命令:

复制代码
keytool -importkeystore -destkeystore <filename-your-HTTP-PKCS12.p12> -srckeystore <filename-PKCS12-contains-CA-Cert.p12> -srcstoretype PKCS12

我的命令如下:

复制代码
/elasticsearch/es9200/jdk/bin/keytool -importkeystore -destkeystore /elasticsearch/es9200/config/certs/http.p12 -srckeystore /elasticsearch/es9200/elastic-stack-ca.p12 -srcstoretype PKCS12

之后验证一下:

执行命令:

复制代码
-keystore /elasticsearch/es9200/config/certs/http.p12 -list

作者环境命令;

复制代码
[elastic@localhost es9200]$ ./jdk/bin/keytool -keystore /elasticsearch/es9200/config/certs/http.p12 -list

ca, 2026年5月25日, PrivateKeyEntry,
证书指纹 (SHA-256): CB:0B:6A:63:22:0B:A7:04:AC:C2:3B:AE:F4:37:A2:07:2E:02:76:A1:02:D3:6D:07:2B:88:4C:A6:F4:38:94:7C
http, 2026年5月22日, PrivateKeyEntry,
证书指纹 (SHA-256): 7F:1E:DA:9F:AD:F0:8B:80:5E:AD:50:21:91:BC:78:9B:67:A3:9D:21:57:7C:D0:B5:94:34:A0:85:2F:1F:C4:04

接着执行就可以生成token了。

相关推荐
zhaokuangkuang_18 小时前
Java学习
java·学习·算法
DataX_ruby8218 小时前
企业常用的数据中台是哪些?
大数据·人工智能·数据治理·数据中台
晴天彩虹雨18 小时前
大厂 Flink 面试 100 题
大数据·面试·flink
humors22118 小时前
危急时刻的六条基本安全提示
大数据·程序人生
暗冰ཏོ18 小时前
《Vue + React + Java + PHP 项目部署到服务器完整指南》
java·服务器·vue.js·react.js·项目部署
Cheng小攸18 小时前
实验七:防火墙安全防护实验
安全
暴躁小师兄数据学院18 小时前
【AI大模型应用开发工程师特训】第01讲—AI在企业中的定位
大数据·python·ai·语言模型
名不经传的养虾人18 小时前
从0到1:企业级AI项目迭代日记 Vol.32|企业AI的隐形工程:登录、接管、发布、资产——一个都不能少
大数据·人工智能·ai编程·企业ai·多agent协作
_Aaron___18 小时前
Spring AI 2.0 之后,MCP Server 该按远程企业服务来设计
java·人工智能·spring
NE_STOP18 小时前
Docker--Docker简介及系统架构
java