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"
}
]