SSL 证书 API

编辑

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

请求

编辑

GET /_ssl/certificates

先决条件

编辑
  • 如果启用了安全功能,则您必须拥有 monitor 集群权限才能使用此 API。有关更多信息,请参阅 安全权限

描述

编辑

有关如何在结合使用传输层安全 (TLS) 时配置证书的更多信息,请参阅 使用 TLS 加密节点间通信

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

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

该列表包括用于配置信任的证书,例如在 xpack.security.transport.ssl.truststorexpack.security.transport.ssl.certificate_authorities 设置中配置的证书。它还包括用于配置服务器身份的证书,例如 xpack.security.http.ssl.keystorexpack.security.http.ssl.certificate 设置。

该列表不包括来自 Java 运行时环境 (JRE) 的默认 SSL 上下文的证书,即使这些证书在 Elasticsearch 中使用。

当将 PKCS#11 令牌配置为 JRE 的 truststore 时,API 将返回 PKCS#11 令牌中包含的所有证书,而不管这些证书是否在 Elasticsearch TLS 配置中使用。

如果 Elasticsearch 配置为使用密钥库或信任库,则 API 输出将包含该存储库中的所有证书,即使其中一些证书可能在集群中未处于活动使用状态。

响应正文

编辑

响应是一个对象数组,每个对象表示一个证书。每个对象中的字段为

path
(字符串) 证书的路径,如 elasticsearch.yml 文件中配置的那样。
format
(字符串) 文件的格式。以下之一:jksPKCS12PEM
alias
(字符串) 如果路径引用容器文件(jks 密钥库或 PKCS#12 文件),则为证书的别名。否则为 null。
subject_dn
(字符串) 证书主题的识别名称。
serial_number
(字符串) 证书序列号的十六进制表示形式。
has_private_key
(布尔值) 指示 Elasticsearch 是否可以访问此证书的私钥。
expiry
(字符串) 证书过期(not-after)日期的 ISO 格式日期。
issuer
(字符串) 证书颁发者的识别名称。

示例

编辑

以下示例提供了有关 Elasticsearch 单个节点上的证书的信息

resp = client.ssl.certificates()
print(resp)
const response = await client.ssl.certificates();
console.log(response);
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"
  }
]