Route53 для домена AWS Elastic Search выдает ошибку сертификата

Я создал домен эластичного поиска AWS в Вирджинии и получил URL-адрес конечной точки.

введите описание изображения здесь

Теперь я хотел настроить поведение Route53 вокруг него, чтобы вызывающий мог использовать тот же URL-адрес, даже если есть некоторые изменения в эластичном поиске или в случае аварийного восстановления.

So,

Маршрут 53 по Вирджинии - 1 указывает на - URL домена эластичного поиска Virgina Маршрут Oregon 53 - 2 указывает на - URL домена эластичного поиска Oregon Основной маршрут 53 - 3 точки к - Маршруту 53 1 или 2

Я уже создал их, а также создал и загрузил SSL-сертификат с правильными записями SAN. Но когда я казню,

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-адрес эластичного поиска напрямую, он работает. Я понимаю, что проблема связана с тем, как я использую сертификат. Любая помощь приветствуется.


person rockyPeoplesChamp    schedule 08.01.2018    source источник
comment
В настоящее время у AWS нет простого решения для этого. Это одна из причин, по которой люди предпочитают ручной кластер EC2 ElasticSearch, а не AWS ES.   -  person Lakshitha Herath    schedule 08.01.2018
comment
Могу ли я использовать маршрут 53 и подключиться к конечной точке эластичного поиска? Я хочу вызвать этот маршрут 53 из некоторого java backend api.   -  person rockyPeoplesChamp    schedule 09.01.2018
comment
Возможно, вы захотите создать обратный прокси-сервер вокруг конечной точки ES. Завершите действие сертификата SSL на сервере nginx и перенаправьте запросы через HTTP в частной подсети.   -  person Zachary Yates    schedule 20.07.2020


Ответы (5)


Конечная точка эластичного поиска всегда будет возвращать SSL-сертификат эластичного поиска.

Поэтому, когда вы создаете для него «псевдоним» Route 53, вы можете подключаться к нему через пользовательскую запись DNS, но Elastic Search по-прежнему будет использовать SSL-сертификат Elastic Search.

Поскольку конечная точка DNS, которую вы используете, не соответствует сертификату SSL, вы получите эту ошибку.

Вы можете использовать флаг --insecure curl, чтобы он не проверял сертификат SSL, однако это может быть связано с риском.

person Matt Houser    schedule 08.01.2018
comment
Могу ли я использовать маршрут 53 и подключиться к конечной точке эластичного поиска? Я хочу вызвать маршрут 53 из некоторого java backend api. - person rockyPeoplesChamp; 09.01.2018
comment
Elastic Search не позволяет заменять сертификат SSL. Таким образом, единственный способ использовать Route 53 - это заставить ваш код не проверять сертификат SSL (не рекомендуется). - person Matt Houser; 09.01.2018
comment
Есть ли шанс решить эту проблему, установив корневые сертификаты AWS? Я нашел этот docs.aws.amazon.com/elasticsearch -service / latest / developerguide / Но не уверен, что это может решить мою проблему. - person rockyPeoplesChamp; 10.01.2018
comment
Нет, это не решит твою проблему. Все, что помогает, - это проверить сертификат эластичного поиска. Ваша проблема в том, что проверка сертификата работает против вас. - person Matt Houser; 10.01.2018
comment
Вы пытаетесь обойти функцию безопасности. Нет законного решения для того, чего вы пытаетесь достичь. - person Matt Houser; 10.01.2018
comment
Спасибо за информацию. Все, что я пытаюсь достичь, - это лучшая система аварийного восстановления. Вот почему я хотел настроить route53 вокруг эластичного поиска. Если в случае, если одна область выходит из строя, и эластичный поиск также падает вместе с ней, я могу легко развернуть другой домен es. В backend api не потребуется никаких изменений, и он по-прежнему может вызывать тот же URL-адрес route53. - person rockyPeoplesChamp; 10.01.2018
comment
Полностью понимаю причину. AWS просто не сделал это возможным. - person Matt Houser; 10.01.2018

Вы, вероятно, можете обойти это, настроив прокси-сервер перед доменом Elasticsearch, хотя это немного глупо, поскольку внутри домена Elasticsearch также есть ELB. Ах хорошо.

Домен, который Amazon ES создает для вас, включает узлы в кластере Elasticsearch и ресурсы из нескольких сервисов AWS. Когда Amazon ES создает ваш домен, он запускает экземпляры в VPC, управляемом службами. Эти экземпляры обслуживаются эластичной балансировкой нагрузки (ELB), а конечная точка для балансировщика нагрузки публикуется через Route 53. Запросы к домену проходят через балансировщик нагрузки ELB, который направляет их в экземпляры EC2 домена.

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

person Ibrahim    schedule 16.04.2019

Один из способов получить доступ к Elasticsearch, используя собственное доменное имя, - это использовать API-шлюз в качестве прокси-сервера HTPP. Но тогда вам придется иметь дело с частью аутентификации, поскольку файлы cookie Cognito для ES будут указывать на исходный домен (*.es.amazonaws.com).

По моему опыту, это выполнимо, и вы должны иметь возможность использовать API-шлюз (плюс собственные доменные имена и маршрут 53) для достижения желаемого (имея собственное доменное имя поверх ES). Просто это требует некоторых знаний Cognito и, скорее всего, некоторого программирования (для решения проблемы с файлами cookie).

person Mehran    schedule 11.05.2020
comment
Это потенциально может быть очень дорого - person GChamon; 15.05.2020

Вы можете использовать конечную точку http вместо https.

i.e

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

Это работает вокруг того факта, что AWS не позволяет предоставлять сертификат личного домена в своем управляемом Elastic сервисе.

person user3041539    schedule 09.01.2019

У нас была та же проблема, мы хотели, чтобы нас перенаправили на Kibana с более дружелюбным DNS-именем, и мы использовали решение с корзиной S3 и перенаправлением, как описано здесь.

Шаги:

  • Создайте корзину S3 с любым именем.
  • В свойствах корзины включите «Статический хостинг веб-сайтов».
  • В свойствах хостинга статических веб-сайтов выберите параметр «Перенаправить запросы».
  • В целевом домене установите URL-адрес Kibana, полученный из вашего домена elasticsearch: т.е. https://vpc-es-randomstring.us-east-1.es.amazonaws.com/_plugin/kibana/
  • Установите Протокол на https
  • Затем следуйте инструкциям из Step 5 в руководстве выше.
person Angelos Kyratzakos    schedule 28.10.2020
comment
только что протестирован - не работает :( часть только с s3 отлично работает - перенаправление на конечную точку kibana, но когда я пытаюсь добавить R53 в микс, заканчивается ведро 404, не найденное для HTTP и тайм-аут для HTTPS-версии my-logs.my-domain .com - person lukpep; 30.10.2020