我已经使用 HTTP 在 Heroku 上启动并运行我们的 Ruby on Rails 应用程序。现在是时候在登录过程中以及用户登录后的所有事务中使用 HTTPS 了。但我不确定从哪里开始。
配置
我们正在使用:
Ruby (1.9.2)
Rails (3.0.5)
Devise (1.5.3)
我们的域(由 GoDaddy 注册)是 oursite.com
(不是它的真实名称),它解析为 oursite.herokuapp.com
。我希望在子域 https://secure.oursite.com
中执行安全交易。我已经从 GoDaddy 购买了 SSL 证书,创建了 key 文件,注册了 Zerigo DNS 服务并将 oursite.com 名称服务器设置为指向 Zergo 的服务器。在 Heroku 上,我已经完成了:
heroku domains:add secure.oursite.com
heroku ssl:add final.crt site.key
heroku addons:add ssl:hostname
问题
- 如果用户通过
http://oursite.com
访问我们的网站,我如何(以及何时)切换到https://secure.oursite.com
? - 如何强制使用 https 进行任何安全交易(例如提交密码)?
- 如何使用 localhost:3000 测试这些东西?
具体答案、一般答案以及指向教程和示例的指针同样受欢迎。谢谢!
最佳答案
首先:
redirecting from http://example.com to https://example.mysite.com
... 是一个非常具体的问题,它取代了这个非常笼统的问题。我将总结过去 24 小时内发现的最佳信息,因为它可能对其他人有帮助。
- Heroku article on SSL如果您要在 Heroku 上部署,则必读。
- Heroku 也有一篇描述 how to purchase an SSL certificate from a general vendor 的文章以及描述 how to purchase an SSL certificate from GoDaddy 的文章.
- 我在尝试为我的 Zerigo DNS service 配置 CNAME 记录时遇到了困难。 .重要的是,如果您使用 Heroku 仪表板创建 Zerigo 帐户,那么您还必须使用 Heroku 仪表板配置您的 CNAME 记录。 Gory details listed here .
- 如果您打算升级到 Rails 3.1,现在是升级的好时机,因为它有一个内置的
force_ssl
方法,可以完全替代各种插件 gem (特别是ssl_requirement
)。 - 话虽如此,
ssl_requirement
的实现https://github.com/rails/ssl_requirement/blob/master/lib/ssl_requirement.rb值得一看,看看它如何使用redirect_to
和request
对象。 - > Simone Carletti有一个全面的博客条目Configuring Rails 3 to use HTTPS and SSL ,涵盖 Rails 3.0 和 Rails 3.1。
希望这对您有所帮助...
关于ruby-on-rails - 需要 Rails 的 HTTPS/SSL 速成类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9007837/