我想实现 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 包来实现。请按照以下步骤操作(不适用于生产,仅用于测试目的)。
- 转到终端中的elasticsearch“bin”目录。
- 执行命令
./elasticsearch-certutil ca
这将在您的elasticsearch主目录中生成一个证书颁发机构。当系统要求您输入 CA 的文件名时,请按“enter”键,然后它将采用默认文件名“elastic-stack-ca.p12”。然后它会要求输入 CA(证书颁发机构)的密码,然后再次按“回车”。 - 现在我们需要使用上面生成的 CA 文件为您的 elasticsearch 实例生成 TLS 证书。为此,请执行
./elasticsearch-certutil cert --ca elastic-stack-ca.p12
。第一次执行此命令时,它会询问您的 CA 文件的密码,然后按“回车”,然后询问 TLS 证书名称,然后再次按“回车”,然后它将 TLS 证书名称视为“elastic-certificates.p12' 这是默认名称,最后它会要求输入 TLS 证书的密码,然后再次按“回车”。现在您将能够在您的elasticsearch主目录中看到两个新文件。 - 将elastic-certificates.p12文件复制到elasticsearch“config”目录中。如果您有多个 Elasticsearch 节点,请将相同的文件复制到每个节点的“config”目录中。
- 现在启动elasticsearch实例
请注意,上述配置步骤不适用于生产,仅适用于测试...:)
关于elasticsearch - elasticsearch证书位于哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67108012/