我正在尝试为我的heroku应用程序设置SSL.我使用的是基于主机名的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.
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,当我使用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
Run Code Online (Sandbox Code Playgroud)
2)基于机架的重定向
添加基于机架的中间件以执行重定向.该规范的主机宝石提供这样的支持.
use CanonicalHost do
case Rails.env.to_sym
when :staging then 'staging.foo.com'
when :production then 'www.foo.com'
end …Run Code Online (Sandbox Code Playgroud)