Я пытаюсь настроить SSL для своего приложения heroku. Я использую надстройку SSL на основе имени хоста. В документации heroku говорится следующее:
Hostname based SSL will not work with root domains as it relies on CNAME
aliasing of your custom domain names. CNAME aliasing of root domains is
an RFC violation.
Как и ожидалось, все работает хорошо, когда я захожу на сайт с помощью поддомена www , то есть https://www.foo.com . Браузер жалуется, когда я открываю https://foo.com , поскольку представленный сертификат предназначен для heroku.com.
Я пришел к выводу, что мне нужно перенаправить трафик для foo.com на www.foo.com , чтобы решить эту проблему. Я рассматриваю следующие подходы:
1) Перенаправление на основе DNS
DNS-провайдер Zerigo поддерживает записи перенаправления . Я наткнулся на вопрос на похожую тему по SO. Я попробовал решение, оно работает ТОЛЬКО для перенаправления HTTP (документация Zerigo это подтверждает).
Моя конфигурация Zerigo:
foo.com A x.x.x.x
foo.com redirect http://www.foo.com
www.foo.com CNAME zzz.amazonaws.com
2) Перенаправление на основе стойки
Добавьте промежуточное ПО на основе стойки для выполнения перенаправления. Гем canonical-host обеспечивает такую поддержку.
use CanonicalHost do
case Rails.env.to_sym
when :staging then 'staging.foo.com'
when :production then 'www.foo.com'
end
end
Мне интересно, есть ли для этого лучшее решение (запрет перехода на SSL на основе IP за 100 долларов в месяц)