Elasticsearch Shield SSL Certificates



我正在使用带有 shield 2.2、10 节点集群的弹性 2.2.0。我需要在 Elastic 中启用 ssl 才能让 Kibana 与 shield 配合使用,我在认证签名部分遇到了麻烦。

我没有通配符证书,所以我不能只在节点中签署一个 csr 并将其复制到所有其他节点,我尝试使用 letsencrypt (使用弹性教程)并使用 node1 的通用名称和 node2-10 的替代名称签署证书并将其复制到所有其他节点(当然,我首先为所有 10 台服务器创建了域并将其指向节点 1, 签署CSR,然后将所有9个指向正确的服务器),它不起作用,我在节点日志中收到了很多"床证书"异常。

正如我所说,我需要 scl,让 kibana 与 shield 一起工作,以及一般的安全连接,我计划向集群添加更多节点......我该如何做到这一点?为此目的,最好的架构是什么?

问题是我试图在节点的私有 ip 种子上使用证书,正如文档所说(这是不可能的):

如果使用商业 CA,则用于标识节点的 DNS 名称和 IP 地址必须是可公开解析的。出于安全考虑,不接受内部 DNS 名称和专用 IP 地址。

如果需要使用私有 DNS 名称和 IP 地址,使用内部 CA 是最安全的选项。它使您能够指定节点标识并确保在节点连接时验证节点标识。如果必须使用商业 CA 和私有 DNS 名称或 IP 地址,则不能在证书中包含节点标识,因此唯一的选择是禁用主机名验证。

因此,解决方案是通过在 elasticsearch.yml 中进行设置,仅将证书用于外部请求(如 kibana UI):

shield.transport.ssl: false shield.http.ssl: true

最新更新