Рейтинг:0

Почему AWS Route 53/Application Load Balancer разрешает многоуровневый поддомен

флаг ru

В AWS я завершаю TLS на балансировщике нагрузки приложений. Я настроил подстановочный сертификат TLS с помощью диспетчера сертификатов AWS (ACM), например. *.example.com. У меня есть разрешение AWS Route 53 *.example.com, но мне не за что *.*.example.com так как мне это не нужно.

Я знаю, что вы не можете настроить подстановочные сертификаты для многоуровневых доменов, таких как *.*.example.com.

https://x.example.com все хорошо и отвечает действительным сертификатом. Я получаю ошибку сертификата с https://y.x.example.com, что имеет смысл. Мне не нужно обслуживать многоуровневые поддомены, такие как *.*.example.com.

Я хотел бы иметь возможность блокировать все многоуровневые доменные запросы, такие как https://y.x.example.com или просто нет разрешения Route 53. По сути, мне нужно правило, в котором говорится, что любой хост для https://*.*.example.com вернуть 404 или для хоста, который не будет разрешен.

В балансировщике нагрузки приложения у меня есть 2 прослушивателя, порт 80 и порт 443.

Я могу настроить правило для прослушивателя порта 80, которое отлично работает для http://x.y.example.com и я могу вернуть 404, когда я настраиваю то же правило для порта 443, оно не работает. Что, я думаю, имеет смысл, потому что браузер не может завершить рукопожатие TLS.

Если я заполню нслукап за x.example.com и yxexample.com Я получаю те же серверы имен, я не ожидал, что Route 53 решит yxexample.com.

Итак, я ищу ответ на один из двух вопросов:

  1. Как настроить балансировщик нагрузки AWS для блокировки всех подстановочных многоуровневых поддоменов на порту 443?
  2. Почему Route 53 разрешается yxexample.com/ как остановить Route 53, разрешающий то же самое?
Рейтинг:0
флаг cn
  1. Если речь идет конкретно о случае HTTPS/TLS, я не вижу, чтобы это было возможным каким-либо осмысленным образом.
    Если у вас нет действительного сертификата для имени, к которому пытается подключиться клиент, у вас нет средств для отправки действительного ответа (например, ответа 404, упомянутого в вопросе), в первую очередь, независимо от конфигурации на стороне сервера.
    Для простого случая HTTP может быть возможно сделать что-то вроде того, что было запрошено на основе Состояние хоста, но я не уверен, что там действительно можно отличить одноуровневый случай от многоуровневого. Однако я не уверен, что в наши дни обычный HTTP-кейс так уж интересен.

  2. Вот как работают подстановочные знаки в DNS. Поиск имени DNS, которое не является частью существующей ветви дерева (независимо от того, отсутствуют ли одна или несколько меток), будет соответствовать записи с подстановочными знаками над ним.
    Также стоит отметить, что * работает как подстановочный знак, только если это самая левая метка. *.example.com работает как подстановочный знак, *.foo.example.com работает как подстановочный знак, но foo.*.example.com, foo*.example.com или же *foo.example.com не являются подстановочными знаками в DNS.
    Я не верю, что у вас есть практический способ использования подстановочных знаков при получении функциональности «только одного уровня», о которой вы просите (с подстановочными знаками DNS в целом или Route53 в частности). Вместо этого рассмотрите возможность добавления конкретных имен, которые вам действительно нужны (динамически, если необходимо), или иным образом используйте обычное поведение с подстановочными знаками.

В целом, я подозреваю, что лучший вариант — не использовать подстановочные знаки в DNS, и тогда не будет проблем с подключением клиентов к ELB с использованием этих нежелательных имен.

Patrick Mevzek avatar
флаг cn
+1 на «лучший вариант — не использовать подстановочные знаки в DNS». Они часто создают больше проблем, чем решений. Они были созданы в то время, когда DNS представлял собой только текстовые файлы без каких-либо инструментов автоматизации или подготовки. В настоящее время существует много других возможностей для «динамической» настройки серверов имен, не полагаясь на подстановочные знаки. Подстановочные знаки можно использовать, если их правильно понять, конечно, они полностью описаны. Однако они все усложняют, начиная с DNSSEC.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.