Назад | Перейти на главную страницу

Имея большие трудности с использованием записей CNAME и A с Elastic Beanstalk для перенаправления не-www на www

У меня есть свой сайт с Elastic Beanstalk (как VirtualHost): http://apptic.us-east-1.elasticbeanstalk.com/apptic/

У меня также есть мой домен в Namecheap: apptic.me

Я установил SSL-сертификат на свой Elastic Load Balancer и в идеале хотел бы использовать HTTPS. Но Меня действительно беспокоит то, что для HTTPS без www сайт не перенаправляет https://apptic.me к https://www.apptic.me - вообще ничего не показывает.

Я почти уверен, что что-то не так с моими настройками DNS, а не с моей конфигурацией Elastic Beanstalk, но я открыт для предложений. Сайт правильно перенаправляет http://apptic.me, и он работает http://www.apptic.me без перенаправления на https (меня это не беспокоит).

Мои текущие настройки DNS следующие:

CNAME Record: www => apptic.us-east-1.elasticbeanstalk.com.
URL Redirect Record: @ => https://www.apptic.me/

Как изменить настройки DNS, чтобы все сочетания HTTP / HTTPS и без www / www переходили в https://www.apptic.me? Я бы даже был в порядке, если бы http://apptic.me пошел в http://www.apptic.me и https://apptic.me пошел в https://www.apptic.me.

Правильный способ справиться с этим - не записи DNS. Вы должны использовать Route 53 и настроить свой домен на настраиваемые серверы имен, которые предоставляет AWS. Вот руководство, которому я следовал: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customdomains.html

Я также написал сообщение об этом в блоге: https://www.apptic.me/blog/using-custom-domains-with-elastic-beanstalk.php

Это не проблема DNS, поскольку псевдоним вершины с CNAME не является законным в соответствии со стандартами DNS.

Функциональность «Запись перенаправления URL» - это настраиваемое поведение, реализованное программным обеспечением Namecheap. На заднем плане это приводит к A запись определяется для веб-сервера, который будет выполнять перенаправление за вас.

Рассматриваемый веб-сервер не прослушивает порт 443 (https), поэтому перенаправление не выполняется.

$ dig +short apptic.me
162.255.119.250
$ nc -zv 162.255.119.250 443
nc: connect to 162.255.119.250 port 443 (tcp) failed: Connection refused

Это почти наверняка связано с ограничениями https, когда большинство браузеров ожидают, что сертификат SSL будет отображать имя веб-сайта до отправки заголовков хоста. Namecheap здесь нечего делать, если только они не готовы выделить IP-адрес для вашего перенаправления и связать с ним сертификат SSL, который вы предоставляете. Альтернативой для них является использование поддельного сертификата SSL, который генерирует предупреждения безопасности, и вместо того, чтобы справляться с этим, они, похоже, решили вообще не прослушивать порт 443.

Короче говоря, это ограничение веб-сервера перенаправления, ограничение вряд ли будет исправлено, и нет ярлыков DNS для решения этой проблемы. Плавное перенаправление https будет требовать выделенный веб-сервер https с действующим подписанным сертификатом SSL. Как только вы его получите, установите апекс A запись на его IP-адрес.