跳到主要内容

SSL 证书 API

检索有关用于加密 Elasticsearch 集群中通信的 X.509 证书的信息。

GET /_ssl/certificates

前置条件​

  • 如果启用了安全功能,你必须具有 monitor 集群权限才能使用此 API。

描述​

此 API 使你能够检索有关用于加密 Elasticsearch 集群中通信的 X.509 证书的信息。有关 TLS 配置的背景信息,参见使用 TLS 加密节点间通信。

该 API 返回一个列表,其中包含所有 TLS 上下文的证书,包括:

  • 传输层和 HTTP 接口的设置
  • 身份验证 realm 中使用的 TLS 设置
  • 远程监控导出器使用的 TLS 设置

该列表包括:

  • 用于配置信任的证书 — 例如 xpack.security.transport.ssl.truststore 和 xpack.security.transport.ssl.certificate_authorities
  • 用于服务器身份的证书 — 例如 xpack.security.http.ssl.keystore 和 xpack.security.http.ssl.certificate

以下是一些例外和特殊情况:

  • 不包含来自 Java 运行时环境(JRE)默认 SSL 上下文的证书,即使这些证书正在使用中。
  • 当 PKCS#11 令牌被配置为 JRE 信任库时,此 API 会返回该令牌中的所有证书,无论它们是否在 Elasticsearch TLS 配置中使用。
  • 如果配置了密钥库(keystore)或信任库(truststore),则输出包括该库中的所有证书,即使有些证书并未实际使用。

响应体​

一个对象数组,每个对象表示一个证书,包含以下字段:

path

证书的路径,如在 elasticsearch.yml 中所配置。

format

文件格式:jks、PKCS12 或 PEM。

alias

证书别名(如果路径指向容器文件,即 JKS 密钥库或 PKCS#12 文件);否则为 null。

subject_dn

证书主题的可识别名称(Distinguished Name)。

serial_number

证书序列号的十六进制表示。

has_private_key

Elasticsearch 是否可以访问私钥。

expiry

ISO 格式的证书过期(not-after)日期。

issuer

证书颁发者的可识别名称。

示例​

以下示例检索集群中使用的 TLS 证书的信息:

GET /_ssl/certificates

API 返回以下响应:

[
{
"path": "certs/elastic-certificates.p12",
"format": "PKCS12",
"alias": "instance",
"subject_dn": "CN=Elastic Certificate Tool Autogenerated CA",
"serial_number": "a20f0ee901e8f69dc633ff633e5cd5437cdb4137",
"has_private_key": false,
"expiry": "2021-01-15T20:42:49.000Z"
},
{
"path": "certs/elastic-certificates.p12",
"format": "PKCS12",
"alias": "ca",
"subject_dn": "CN=Elastic Certificate Tool Autogenerated CA",
"serial_number": "a20f0ee901e8f69dc633ff633e5cd5437cdb4137",
"has_private_key": false,
"expiry": "2021-01-15T20:42:49.000Z"
},
{
"path": "certs/elastic-certificates.p12",
"format": "PKCS12",
"alias": "instance",
"subject_dn": "CN=instance",
"serial_number": "fc1905e1494dc5230218d079c47a617088f84ce0",
"has_private_key": true,
"expiry": "2021-01-15T20:44:32.000Z"
}
]

原文链接