【发布时间】:2011-10-05 19:18:28
【问题描述】:
我正在尝试为我的 heroku 应用设置 SSL。我正在使用基于主机名的 SSL 插件。 heroku documentation 声明如下:
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 supports 重定向 记录。我在 SO 上遇到了一个类似主题的question。我尝试了该解决方案,它仅适用于 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
我想知道是否有更好的解决方案(禁止切换到每月 100 美元的基于 IP 的 SSL)
【问题讨论】:
标签: ruby-on-rails ssl heroku