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

相关推荐
xcl09251 小时前
北京24小时自助健身房系统软件开发实战:从架构到部署全流程指南
java·spring boot·架构
一 乐3 小时前
动漫书销售商城|基于springboot + vue动漫书销售商城(源码+数据库+文档)
java·数据库·vue.js·spring boot·毕业设计
卓怡学长3 小时前
w214基于jsp知道特产网
java·intellij-idea
步行cgn3 小时前
Spring 注解使用详解
java·spring
其实防守也摸鱼3 小时前
Fastjson 反序列化漏洞(JNDI注入)
android·数据库·安全·oracle·自动化·fastjson·反序列化
一条小小yu3 小时前
Spring IoC的理解
java·后端·spring
跨境小彭4 小时前
Temu拉美站点铺货实操复盘:手动复制痛点与批量自动化解决方案
服务器·人工智能·搜索引擎·自动化·temu电商运营
落魄实习生4 小时前
Agent Scope Java 2.x 系列【7】工具使用
java·开发语言·ai
旺仔学长 哈哈4 小时前
springboot钓鱼爱好者交流平台APP设计与实现
java·spring boot·mysql·充电桩管理系统
Qyr994 小时前
2026-2032直接芯片液冷板市场爆发式增长:AI算力浪潮下的热管理核心赛道
大数据·人工智能