【es】elasticsearch证书文件 elastic-certificates.p12 和 elasticsearch.keystore

elastic-certificates.p12 和 elasticsearch.keystore 文件的作用分别是什么?
如何查看这2个证书文件的详情?

$ ll elasticsearch/config/
total 48
-rw-r-----. 1 es es  3443 Jul  6  2023 elastic-certificates.p12
-rw-rw----. 1 es es   199 Jul  6  2023 elasticsearch.keystore
-rw-rw-r--. 1 es es   794 Jul  6  2023 elasticsearch.yml
-rwxr-xr-x  1 es es  3124 Oct 31  2023 jvm.options
drwxr-xr-x. 2 es es     6 Jul  6  2023 jvm.options.d
-rwxr-xr-x. 1 es es 18535 Jul  6  2023 log4j2.properties
-rwxr-xr-x. 1 es es   473 Jul  6  2023 role_mapping.yml
-rwxr-xr-x. 1 es es   197 Jul  6  2023 roles.yml
-rwxr-xr-x. 1 es es     0 Jul  6  2023 users
-rwxr-xr-x. 1 es es     0 Jul  6  2023 users_roles

elastic-certificates.p12 和 elasticsearch.keystore 文件的作用

文件作用

  1. elastic-certificates.p12:
  • 这是一个PKCS#12格式的证书文件,通常包含SSL/TLS证书和私钥
  • 用于Elasticsearch节点的安全通信(HTTPS)和节点间加密传输
  • 包含X.509证书和对应的私钥,用于身份验证和加密
  1. elasticsearch.keystore:
  • 这是Elasticsearch的密钥库文件,用于存储敏感信息
  • 可以存储各种安全相关的密钥和凭证,如:
  • SSL/TLS证书和密钥
  • 用于加密存储的密钥
  • 第三方服务的认证信息(如S3存储的访问密钥)
  • 不同于.p12文件,这是一个Java Keystore格式的文件

查看文件详情的方法

查看 elastic-certificates.p12

# 查看.p12文件内容(需要密码)
openssl pkcs12 -info -in elastic-certificates.p12

# 只查看证书信息
openssl pkcs12 -in elastic-certificates.p12 -clcerts -nokeys | openssl x509 -text -noout

# 只查看私钥信息(需要密码)
openssl pkcs12 -in elastic-certificates.p12 -nocerts -nodes

查看 elasticsearch.keystore

# 列出keystore中的条目(需要密码)
keytool -list -v -keystore elasticsearch.keystore

# 查看特定条目的详细信息
keytool -list -v -keystore elasticsearch.keystore -alias <条目别名>

注意:

  1. 执行这些命令可能需要密码,密码通常是在Elasticsearch配置中设置或在文件创建时指定的
  2. 如果没有密码,可能需要使用Elasticsearch的keystore工具来访问:
bin/elasticsearch-keystore list

这个错误表明 elasticsearch.keystore 文件不是标准的 Java Keystore (JKS) 格式。Elasticsearch 使用了一种自定义的密钥库格式,因此不能直接用 keytool 工具查看。

正确的查看方法

方法1:使用 Elasticsearch 自带的 keystore 工具

# 列出所有存储的密钥条目
/path/to/elasticsearch/bin/elasticsearch-keystore list

# 查看特定密钥的值
/path/to/elasticsearch/bin/elasticsearch-keystore show <条目名称>

方法2:如果知道密码,可以尝试转换为标准格式

# 首先备份原始文件
cp elasticsearch.keystore elasticsearch.keystore.bak

# 尝试转换为 PKCS12 格式(需要密码)
/path/to/elasticsearch/bin/elasticsearch-keystore export pkcs12

# 然后可以用 openssl 查看
openssl pkcs12 -info -in exported.p12

方法3:直接查看文件内容(不推荐)

# 以文本方式查看(可能显示乱码)
cat elasticsearch.keystore

# 或用 hex 查看器
hexdump -C elasticsearch.keystore | less

注意事项

  1. Elasticsearch 的 keystore 是加密的,没有密码通常无法查看内容
  2. 生产环境中不建议直接查看或修改 keystore 文件
  3. 如果需要修改,应该使用 elasticsearch-keystore 工具提供的命令

如果你只是想确认 keystore 中存储了哪些密钥,方法1是最安全可靠的方式。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容