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 文件的作用
文件作用
- elastic-certificates.p12:
- 这是一个PKCS#12格式的证书文件,通常包含SSL/TLS证书和私钥
- 用于Elasticsearch节点的安全通信(HTTPS)和节点间加密传输
- 包含X.509证书和对应的私钥,用于身份验证和加密
- 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 <条目别名>
注意:
- 执行这些命令可能需要密码,密码通常是在Elasticsearch配置中设置或在文件创建时指定的
- 如果没有密码,可能需要使用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
注意事项
- Elasticsearch 的 keystore 是加密的,没有密码通常无法查看内容
- 生产环境中不建议直接查看或修改 keystore 文件
- 如果需要修改,应该使用
elasticsearch-keystore工具提供的命令
如果你只是想确认 keystore 中存储了哪些密钥,方法1是最安全可靠的方式。