elasticsearch - elasticsearch证书位于哪里

标签 elasticsearch elasticsearch-x-pack

我想实现 xpack 安全性。我放入elasticsearch.yml 中的以下代码。但我收到证书不存在的错误。我检查了node中的所有目录,没有elastic-certificates.p12。我该如何解决这个问题?我该如何实现这个?

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
xpack.license.self_generated.type: basic

感谢您的回答

最佳答案

以上配置都很好,您需要做的是生成节点证书以加密elasticsearch节点间通信(TLS - 传输层安全)。原因是,默认情况下,elasticsearch 以文本格式(甚至密码)传输数据,这是一种很差的安全实践。因此,在启用 Xpack 安全性之前,应该对节点间通信进行加密。这可以通过使用 elasticsearch certutil 包来实现。请按照以下步骤操作(不适用于生产,仅用于测试目的)。

  1. 转到终端中的elasticsearch“bin”目录。
  2. 执行命令./elasticsearch-certutil ca这将在您的elasticsearch主目录中生成一个证书颁发机构。当系统要求您输入 CA 的文件名时,请按“enter”键,然后它将采用默认文件名“elastic-stack-ca.p12”。然后它会要求输入 CA(证书颁发机构)的密码,然后再次按“回车”。
  3. 现在我们需要使用上面生成的 CA 文件为您的 elasticsearch 实例生成 TLS 证书。为此,请执行 ./elasticsearch-certutil cert --ca elastic-stack-ca.p12。第一次执行此命令时,它会询问您的 CA 文件的密码,然后按“回车”,然后询问 TLS 证书名称,然后再次按“回车”,然后它将 TLS 证书名称视为“elastic-certificates.p12' 这是默认名称,最后它会要求输入 TLS 证书的密码,然后再次按“回车”。现在您将能够在您的elasticsearch主目录中看到两个新文件。
  4. elastic-certificates.p12文件复制到elasticsearch“config”目录中。如果您有多个 Elasticsearch 节点,请将相同的文件复制到每个节点的“config”目录中。
  5. 现在启动elasticsearch实例

请注意,上述配置步骤不适用于生产,仅适用于测试...:)

关于elasticsearch - elasticsearch证书位于哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67108012/

相关文章:

php - 用于searchly.com的Elasticsearch PHP连接设置

spring - 您如何将 Spring Boot 日志直接摄取到弹性中

Elasticsearch - _cat/indices 和 <index>/_search 之间的文档数量不一致

elasticsearch - spring data elasticsearch中,聚合查询不能放在repository实现吗?

java - ES 7.4.1 - 身份验证 [Rest API]

jquery - ElasticSearch:jQuery Ajax http请求中需要用户认证

elasticsearch - ElasticSearch NEST API 中的滚动示例

docker - 如何使用 docker elk 堆栈设置 kibana 用户凭据

elasticsearch - Kuzzle:使用X-pack连接Elasticsearch

elasticsearch - 无法将非对象映射与机器学习(测试版)模块中的对象映射错误合并