elasticsearch证书位于何处

Where does elasticsearch certificates located

我想实现 xpack 安全。我在 elasticsearch.yml 中输入的以下代码。但是我得到一个证书不存在的错误。我检查了节点中的所有目录,没有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 - Transport Layer Security)。原因是,默认情况下 elasticsearch 以文本格式(甚至密码)传输数据,这是一种糟糕的安全做法。因此,在启用 Xpack 安全性之前,应该对节点间通信进行加密。这可以通过使用 elasticsearch certutil 包来实现。请按照以下步骤操作(不适合生产,仅供测试)。

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

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