HTTPS перенаправить из корневого домена (то есть apex или «голый») на поддомен «www» без использования браузера?

DNS-записи требуют, чтобы IP-адрес был жестко запрограммирован в вашем приложении.Конфигурация DNS

...которыйHeroku рекомендует избегать, Heroku предлагает два обходных пути:

... используя провайдера DNS, который поддерживает CNAME-подобные функции на вершине, и используя перенаправление поддоменов`.

Мой вопрос вращается вокруг второго варианта (потому что первый неПоддерживается DreamHost AFAIK):

Можно ли перенаправить из корня (например, апекс или 'голый») домен в 'WWW» поддомен для HTTPS-запросов без выкидывания браузера?

Героку думает, что нет:

... приложения, требующие шифрования SSL, должны использовать конфигурацию ALIAS / ANAME в корневом домене. Перенаправление поддоменов приведет к ошибке браузера, когда корневой домен запрашивается по SSL (т.е.https://example.com).

...но я'Я надеюсь, чтоЭто неполное (или неверное) утверждение.

ОБНОВЛЕНИЕ РАЗЪЯСНЕНИЯ:

Реальная проблема с перенаправлением с вершины на 'WWW» это печататьhttps://example.com прямо в браузер выдаст предупреждение о сертификате. Конечно, этоЭто крайний случай, но не маленький.

ОБНОВЛЕНИЕ РЕШЕНИЯ:

Я решил эту проблему сDNSimple, (Didn»т даже надо перенести мой домен!)

Я полагаю, что easyDNS предлагает аналогичную функцию, но удивлен, обнаружив, что большинство других хостинг-компаний нет.

 ruakh14 мая 2013 г., 03:15
Проблема в том, что ваш сервер должен вернуть SSL-сертификат (для того, чтобы установить соединение HTTPS)до он получает заголовки запроса, такие какHost заголовок, и, следовательно, прежде чем он знает, какое имя хоста используется. Так что, если он возвращает сертификат SSL, который говорит этос дляwww-поддомен, тогда пользователь получит ошибку при посещении корневого домена; и наоборот. (Если вы не используете виртуальные хосты для фактического запуска этих двух доменов на разных IP-адресах, в этом случае вы можете идентифицировать предполагаемый хост таким образом.)
 Pavel Komarov12 июн. 2018 г., 23:57
проголосовал за "рвота

Ответы на вопрос(3)

ПРИМЕЧАНИЕ: я не пробовал это с приложением Heroku. Я все еще делюсь этим решением здесь, так как это первая страница стека overoverflow, которая отображается дляперенаправление с голого домена на версию www ' поиск. Это может помочь другим, кто ищет ответ на общее перенаправление.

Я успешно перенаправил голый домен на версию www. Кроме того, я также перенаправил HTTP-версию в HTTPS-версию, используя настройки DNS доменов Google в синтетических записях.

Удалить любой «А» записи для '@' в вашем DNS.Добавить синтетическую запись с поддоменом = '@' и перенаправить его на www версию вашего сайта.После добавления отредактируйте эту же запись и измените значение по умолчанию.http://www.example.com» кhttps://www.example.com» , Обратите внимание на 's' в http здесь. Нажмите Сохранить.Тот'сидеть. Теперь о вашем перенаправлении заботятся настройки DNS.

Подробные шаги описаны здесь:https://www.am22tech.com/redirect-naked-domain-www-http-https-google-domains/

Решение Вопроса

Здесь следует рассмотреть два отдельных, но взаимозависимых уровня косвенности. Во-первых, к какому IP-адресу в конечном итоге относится DNS-имя. Второе - это то, что делает сервер на этом IP-адресе.

Помните, что когда вы вводите URL в браузер, первое, что происходит, - это поиск DNS. Обычно этос операционной системой - не сам браузер.

Так что ваш браузер спросит у ОС "какой адресexample.com?» ОС будет искать запись, и если она получитCNAME, посмотрю запись, пока не найдетA запись. Затем ОС отвечает браузеру с ответом.

Затем ваш браузер открывает TCP-соединение с этим IP-адресом:

Если URL http: //, он подключается к порту 80, а затем выдает HTTP-запрос.Если https: // URL, он подключается к порту 443,устанавливает соединение TLS / SSL (что означает проверку сертификатов),затем выдает HTTP-запрос по безопасному каналу.

Только в этот момент может произойти перенаправление HTTP. Браузер отправляет запрос (GET /и сервер может ответить 301 на любой другой URL.

Понять это "перенаправление поддоменов " Услуги, предлагаемые регистраторами, представляют собой не что иное, как обычный HTTP-сервер, который выдает 301-е. Когда вы выбираете регистраторапараметр перенаправления, они просто устанавливаютA запись вашего доменаs вершина к серверу, которым они управляют, и тот сервер говорит браузерам перейти кwww.example.com.

Поскольку большинство регистраторов неЕсли вы не можете загрузить SSL-сертификат на свой сервер перенаправления, браузеры не могут установить необходимое безопасное соединение с сервером, и поэтому они никогда не выдают HTTP-запрос. Таким образом, запросы наHTTPS: //example.com потерпеть поражение.

Так почемуты простоCNAME вершина?Запрещено.

Доменная система предоставляет такую возможность, используя каноническое имя (CNAME) RR [Record Resource].CNAME RR идентифицирует имя своего владельца как псевдоним и указывает соответствующее каноническое имя вRDATA раздел рр.ЕслиCNAME RR присутствует на узле, другие данные не должны присутствовать; это гарантирует, что данные для канонического имени и его псевдонимов не могут быть разными. Это правило также гарантирует, что кэшированныйCNAME может использоваться без проверки на официальном сервере для других типов RR.

Спецификация требует, чтобыCNAME запись будет единственной записью для данного (под) домена. Это противоречит требованию иметьSOA запись на вершине. (Есть некоторые попытки изменить спецификации, чтобыCNAME а такжеSOA сосуществовать, но все еще есть много сломанных реализаций SMTP, которые будут сбиты с толкуCNAME на домене.)

У вас есть следующие опции, чтобы заставить SSL работать на вершине:

Используйте стороннюю службу, которая поддерживает SSL на сервере перенаправления. Вы'Скорее всего, заплатит за это.Вот'один сервис. яне будет Рекомендуем этот маршрут, поскольку он берет контроль над надежностью из ваших рук и требует, чтобы вы передали ключи от вашего SSL-сертификата кому-то, кто может или не может быть заслуживающим доверия.Запустите свой собственный сервер перенаправления. Поскольку вершина требуетA запись, тыВам понадобится статический IP, который такие сервисы, как Heroku и AWS ' ELB не предоставляют. Так что если выВ облачной среде будет очень сложно (если не невозможно) гарантировать надежность. С другой стороны, вы сохраняете контроль над своими ключами SSL.Используйте DNS-хост, который позволяет вам установитьпсевдоним, Укажите псевдоним вашего домена Heroku / ELB / что угодно. Это, скорее всего, лучший вариант.

псевдоним технически не является типом записи DNS. Вместо этого это специальная конфигурация на стороне хоста DNS, которая возвращаетA запись из результата другого поиска. Другими словами:

Ваша ОС выдает DNS-запрос наexample.com на ваш DNS-хост.Ваш DNS-хост читает внутреннюю конфигурацию псевдонима и выдает DNS-запрос для этого домена. Так что если у вас есть псевдоним дляexample.herokuapp.comПосмотрелA запись этого домена.DNS-хост возвращает простойA запись с IP-адресов, полученных из поиска псевдонимов.

С помощью записи псевдонима вы можете указать свой апекс на тот же балансировщик нагрузки облака, что и вашWWW доменCNAMEд к. Предполагая, что вынастроили SSL наWWW домен, голый домен будет работать просто отлично. На данный момент этоВы можете выбрать, будет ли ваше приложение перенаправлять ваше приложение или будет обслуживать ваш контент непосредственно через открытый домен.

 Jeff Atwood17 сент. 2016 г., 20:48
это должно упомянуть CNAME уплощение, я думаюblog.cloudflare.com/...
 rewritten18 мая 2013 г., 20:02
Ну похоже что в амазоне тыМожно фактически укажите A-запись для ELB с использованием Route53, который будет возвращать любой IP-адрес, который имеет балансировщик нагрузки, поэтому просто заставьте ваш домен использовать DNS-серверы Route53 и заплатите за него (это 'не много ...)
 necromancer19 апр. 2015 г., 06:51
Вариант 3 не всегда работает. Из моих экспериментов даже при правильной настройке серверы гугл игнорируютhttps://example.com отвечая наhttps://www.example.com
 Costa13 нояб. 2014 г., 18:45
о, этот пост очень подробный .... теперь я знаю, почему ягрустный
 Polaris87808 мар. 2014 г., 05:27
Любой новичок в настройке домена с облачным провайдером должен сначала прочитать этот ответ !! D '

Вам нужен сертификат, который защищает как www.example.com, так и example.com.

Ваш ответ на вопрос