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了。

相关推荐
码兄科技1 小时前
Java AI智能体开发实战:从零构建智能对话系统指南
java·开发语言·人工智能
xixingzhe22 小时前
SpringBoot + Nginx 免鉴权接口安全防护方案
运维·nginx·安全
折哥的程序人生 · 物流技术专研2 小时前
第8篇:六大设计原则在工厂模式中的体现
java·设计模式·设计原则·工厂模式·编程进阶·扩充系列
小明bishe182 小时前
计算机毕业设计之基于JAVA的植物科普网站
java·spring boot·spring·架构·课程设计
r_oo_ki_e_2 小时前
Java Map 集合学习笔记
java·笔记·学习
中科岩创2 小时前
宁波某大学高支模施工安全监测实训模型应用
科技·物联网·安全·自动化
SL-staff3 小时前
智慧园区2000+设备统一管理:JVS-IoT如何降低运维成本40%
java·开发语言·物联网·智慧园区·设备管理·运维优化·jvs-iot
项目经理老王3 小时前
OpenClaw无捆绑安装包,安全纯净版AI助手部署
人工智能·安全
咖啡八杯3 小时前
GoF设计模式——模板方法模式
java·后端·spring·设计模式
爱笑的源码基地4 小时前
一款全开源的信创云PACS影像云平台解决方案,支持多模态医学影像处理(CT/MR/DR/超声/病理等)
java·源码·国产化·pacs·云影像·区域pacs