Я пытаюсь настроить 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
Поставщик DNS Zerigo поддерживает записи переадресации. Я встретил question по аналогичной теме на 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 gem предоставляет такую поддержку.
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 долларов США)