У меня есть свой сайт с 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-адрес.