2014-03-24 45 views
1

我很惊讶地发现很多开发人员在我之前必须面对这个主题的小文档。Rails:本地服务器处理SSL

我们正在将我们的应用更改为100%HTTPS/SSL(因为部分SSL不包含make sense)。

这很酷,但在此之前,我们需要迁移到它,因此来测试它。当然我发现了一些基本信息(herehere)。

,因为我想我的本地环境中,以避免发生意外错误尽可能接近到其他的人,这些解决方案都不能令人满意我:他们确定了很短的时间测试的一项功能,而不是更多。

这里有问题/问题,我有:

  • 我可以得到有效证明,我的本地机器,避免了难看的警告步骤我甚至不能明确接受镀铬?
  • 引导服务器thinthin start --ssl --ssl-verify --ssl-key-file server.key --ssl-cert-file server.crt),我可以得到与rails server相同的日志消息吗?
  • 我不能继续使用rails server作为引导命令(除写一个肮脏的名称...)

总结的问题是,我可以做一个配置,以便它是透明的任何运行实例我们的应用程序本地在https?

我的意思是,绝对所有的事情都是在rails中完成的,以使开发变得容易,并且生产强健,但是在这里,会出现如此缺乏好工具的情况?我几乎不能相信......或者现在就开始吧!

感谢支持!我正在使用rails 3.2ruby 1.9

回答

2

我可以为我的本地计算机获取有效的证书,以避免丑陋的警告步骤我甚至无法明确地接受chrome?

这取决于您是否为您的域使用实际证书(例如example.com),或者仅为开发生成一个证书。如果您使用生产中的实际证书,则可以简单地编辑主机文件以使example.com解析为localhost。然后访问https://example.com应该加载你的Rails应用程序。

你可能还需要包括这在你的application.rb

config.force_ssl = true 

如果你生成自己的证书,你就需要通过创建一个私有证书颁发机构,以避免的运动Chrome中的SSL警告。这是更多的工作,可能不值得。

薄引导服务器(薄启动--ssl --ssl-验证--ssl-密钥文件 server.key --ssl证书文件server.crt这),我可以得到相同的日志消息从轨道服务器作为 ?

您应该可以从您的Rails应用程序的根目录中获得tail -f log/development.log

我不能继续使用轨道服务器作为引导命令(通过 除了写一个肮脏的名称...)

这一个是因为,当使用rails s是WebBrick运行在服务器棘手。你可以尝试什么在这个帖子这里列出:Configuring WEBrick to use SSL in Rails 4


顺便为Rails应用程序典型的设置是代理背后说的SSL终止nginx的服务器。这样,你的Rails应用程序并不需要了解任何SSL,以及给你一些其他的好处,如能够从nginx的,负载均衡,虚拟主机等服务资产

如果你感兴趣的是建立一个与产品相同的环境,我会查看Vagrant