需要一个用于Rails的HTTPS / SSL速成课程

时间:2012-01-25 18:10:13

标签: ruby-on-rails ssl https heroku

我已经使用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证书,创建了密钥文件,注册了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?
  • 测试这些内容

同样欢迎具体答案,一般答案以及教程和示例的指示。谢谢!

2 个答案:

答案 0 :(得分:9)

首先:

redirecting from http://example.com to https://example.mysite.com

...是一个非常具体的问题,取代了这个非常普遍的问题。我将总结过去24小时内找到的最佳信息,因为它可能对其他人有所帮助。

希望这有用......

答案 1 :(得分:1)

我想看一下ssl_requirement。这使您可以保护应用程序的各个部分,从而迫使您仅通过HTTPS提供某些页面。

https://github.com/rails/ssl_requirement

通过本地开发,您需要设置某种Apache / NGinx设置,并使用本地签名的证书进行固定。一个快速的谷歌发现了这个:

http://www.subelsky.com/2007/11/testing-rails-ssl-requirements-on-your.html