13

我在弗吉尼亚州创建了一个 AWS 弹性搜索域并获得了一个 Endpoint url。

在此处输入图像描述

现在我想围绕它配置 Route53 行为,以便调用者可以使用相同的 url,即使弹性搜索有一些变化或在灾难恢复的情况下也是如此。

所以,

Virginia Route 53 -- 1 指向 -- Virgina Elastic Search Domain URL Oregon Route 53 -- 2 Points 到 -- Oregon Elastic Search Domain URL Main Route 53 -- 3 Points 到 -- Route 53 1 或 2

我已经创建了这些,还创建并上传了带有正确 SAN 条目的 SSL 证书。但是当我执行时,

curl https://mainroute53/health
curl https://virginiaroute53/health
curl https://oregonroute53/health

我收到此错误,

curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.

但是当我直接调用弹性搜索 URL 时,它的工作原理。所以我知道这是我使用证书的方式的问题。任何帮助表示赞赏。

4

5 回答 5

8

您的 Elastic Search 终端节点将始终返回 Elastic Search SSL 证书。

因此,当您为其创建 Route 53“别名”时,您可能会通过自定义 DNS 条目连接到它,但 Elastic Search 仍将使用 Elastic Search SSL 证书。

由于您使用的 DNS 端点与 SSL 证书不匹配,因此您会收到该错误。

您可以使用--insecurecurl 标志让它不检查 SSL 证书,但是这样做存在风险。

于 2018-01-08T21:39:32.437 回答
3

您可以通过在 Elasticsearch 域前设置代理服务器来解决此问题,尽管这有点愚蠢,因为 Elasticsearch 域内似乎也有一个 ELB。呃,好吧。

Amazon ES 为您创建的域包括 Elasticsearch 集群中的节点和来自多个 AWS 服务的资源。当 Amazon ES 创建您的域时,它会将实例启动到服务控制的 VPC。这些实例以 Elastic Load Balancing (ELB) 为前端,负载均衡器的端点通过 Route 53 发布。对域的请求通过 ELB 负载均衡器,后者将它们路由到域的 EC2 实例。

https://aws.amazon.com/blogs/database/set-access-control-for-amazon-elasticsearch-service/

于 2019-04-16T00:59:31.657 回答
2

使用自定义域名访问 Elasticsearch 的一种方法是使用 API 网关作为 HTPP 代理。但是您必须处理身份验证部分,因为 ES 的 Cognito cookie 将指向原始域 ( *.es.amazonaws.com)。

根据我的经验,这是可行的,您应该能够使用 API Gateway(加上自定义域名和 Route 53)来实现您想要的(在 ES 上拥有自定义域名)。只是它需要一些 Cognito 知识,并且很可能需要一些编码(处理 cookie 问题)。

于 2020-05-11T17:31:13.960 回答
0

我们遇到了同样的问题,希望使用更友好的 DNS 名称重定向到 Kibana,我们使用了带有 S3 存储桶的解决方案和此处描述的重定向。

步骤:

于 2020-10-28T10:05:29.557 回答
0

您可以使用http端点而不是https端点

IE

curl **http**://mainroute53/health

这解决了 AWS 不允许在其托管的 Elastic服务中提供自定义域证书的事实

于 2019-01-09T14:52:59.953 回答