首页 > 解决方案 > 如何使用 SSL 在 Filbeat 和 Elasticsearch 之间建立安全连接

问题描述

我无法在 Filebeat 和 Elasticsearch 之间建立 SSL 连接。

我缺乏关于 SSL 的知识。我正在使用 X-Pack 使用命令生成证书certutilbin/xpack/certutil ca生成一个名为 的证书颁发机构elastic-stack-ca.p12

然后

$ bin/x-pack/certutil cert --ca elastic-stack-ca.p12

我相信它会创建一个由该 CA 签名的证书。这导致文件elastic-certificates.p12. 从这里我一无所知。

我尝试通过设置到 ES 的 HTTPS 连接来测试证书是否有效。

我放

xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.key:  /path/to/elastic-certificates.p12
xpack.security.http.ssl.certificate: /path/to/elastic-certificates.p12 
xpack.security.http.ssl.certificate_authorities: [ "/path/to/elastic-stack-ca.p12" ]

但是,这会带来很多错误,其中之一是

caught exception while handling client http traffic, closing connection

当我https在 Kibana 中添加 IP 和 CA 时,它无法与 ES 连接。

我想知道如何成功设置https。此外,如何在两台服务器之间建立 SSL 连接。一个包含 Filebeat,但没有 X-Pack 和带有 ES 的接收服务器,同时安装了 X-Pack。

标签: kibanaelastic-stackfilebeat

解决方案


在您的 中添加这些 SSL 设置后elasticsearch.yml,您还需要将密码添加到 Elasticsearch 密钥库和信任库。certutil运行命令时应该设置密码。你可以这样做:

$ echo password | /usr/share/elasticsearch/bin/elasticsearch-keystore add --stdin xpack.security.transport.ssl.keystore.secure_password
$ echo password | /usr/share/elasticsearch/bin/elasticsearch-keystore add --stdin xpack.security.transport.ssl.truststore.secure_password

确保在进行这些更改后重新启动 Elasticsearch。


推荐阅读