ElasticSearch7.17版本安装

221 阅读2分钟

本内容只记载密码,不做其他描述,详细请参考8.12篇

elasticsearch.yml文件添加属性

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

image.png

命令为 elasticsearch-setup-passwords interactive

用户名:elastic 设置密码为123456

api key为:Qy1FcFQ1WUJRZlliMTZCRnhKYkI6V19QS1BjZ2FTU3k3aTZ2QkEtV3hxQQ==

kibana配置参考8.12.2

Elasticsearch 中未启用 API 密钥的解决方案

1. 启用安全特性与 API 密钥配置

  1. 修改 elasticsearch.yml 文件
    在配置文件中添加以下参数以启用安全认证和 API 密钥功能:

    yamlCopy Code
    xpack.security.enabled: true
    xpack.security.authc.api_key.enabled: true
    

    说明‌:

    • xpack.security.enabled:全局安全认证开关,必须开启‌12。
    • xpack.security.authc.api_key.enabled:API 密钥功能专用开关‌12。
  2. 配置 TLS 加密(强制要求)
    生产环境下需启用 TLS 加密,否则 API 密钥服务可能无法启动‌23:

    yamlCopy Code
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
    xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
    

    说明‌:

    • 若未生成证书文件 elastic-certificates.p12,需通过 elasticsearch-certutil 生成‌28。
    • 证书文件需放置于 config/certs 目录,权限设置为 644‌78。

2. 生成证书(如未配置)

  1. 执行证书生成命令

    bashCopy Code
    ./bin/elasticsearch-certutil cert -out config/certs/elastic-certificates.p12 -pass ""
    

    说明‌:

    • -pass "" 表示证书无密码,适用于测试环境;生产环境建议设置密码‌28。
    • 生成的证书需分发到集群所有节点的相同路径‌8。

3. 重启服务并验证

  1. 重启 Elasticsearch 集群
    修改配置后需重启所有节点以使配置生效‌12。

  2. 验证 API 密钥功能

    • 创建 API 密钥测试‌:

      bashCopy Code
      curl -u elastic:密码 -X POST "https://localhost:9200/_security/api_key" \
      -H "Content-Type: application/json" \
      -d '{"name": "test-key", "expiration": "1d"}'
      

      若返回包含 id 和 api_key 的 JSON 响应,表示功能已启用‌34。

    • 检查错误日志‌:
      若启动失败,检查日志中是否存在 API keys are not enabled 或证书权限错误‌27。


注意事项

  • 证书一致性‌:集群所有节点需使用相同的证书文件,且路径配置一致‌8。

  • 客户端适配‌:

    • 客户端需使用 HTTPS 协议(如 https://localhost:9200)‌23。
    • 调用 API 时需在请求头附加 Authorization: ApiKey {base64(id:api_key)}‌47。
  • 许可证限制‌:

    • Basic 许可证仅支持基础安全功能,若需高级特性(如角色描述符),需升级至 Platinum 或企业版‌13。

通过上述步骤可解决 Elasticsearch 中 API 密钥未启用的问题,并确保服务端与客户端的兼容性‌12。


API 密钥有效期如何设置?

Elasticsearch 中 API 密钥有哪些使用限制

Elasticsearch 7.17.28 中如何生成 API 密钥?

elastic search client

ElasticHD