我很惊讶找到这么少的关于这个主题的文档,在我之前肯定有很多开发人员遇到过这个问题。
我们正在将我们的应用程序更改为100% HTTPS/SSL(因为部分SSL没有意义)。
这很酷,但在此之前,我们需要迁移到它,因此要测试它。当然,我找到了一些基本信息(这里和这里)。
由于我希望我的本地环境尽可能接近其他环境,以避免意外错误,这些解决方案对我来说并不令人满意:它们可以用于短时间测试一个功能,而不是更多。
以下是我的问题/疑问:
- 我可以得到一个有效的证书为我的本地机器,以避免丑陋的警告步骤,我甚至不能接受明确在chrome上?
- 启动服务器与
thin
(thin start --ssl --ssl-verify --ssl-key-file server.key --ssl-cert-file server.crt
),我可以得到相同的日志消息从rails server
? - 我不能继续使用
rails server
作为启动命令(除了写一个脏别名…)
总结问题是,我可以做一个配置,使它是透明的,任何人在https本地运行我们的应用程序的实例?
我的意思是,绝对一切都是在rails中完成的,以使开发更容易,生产更健壮,但是在这里,会缺乏好的工具吗?我简直不敢相信……或者我们现在就做吧!
感谢支持!我使用rails 3.2
和ruby 1.9
。
我可以得到一个有效的证书为我的本地机器,以避免丑陋警告步骤,我甚至不能接受明确的chrome?
这取决于您是否为您的域使用实际证书(例如。Example.com),或者仅仅为了开发而生成一个。如果使用的是生产中的实际证书,只需编辑hosts文件,使example.com解析为localhost。然后访问https://example.com应该会加载你的Rails应用。
您可能还需要在application.rb
:
config.force_ssl = true
如果你正在生成自己的证书,你需要通过创建一个私人证书颁发机构的动作来避免Chrome中的SSL警告。这是很多工作,可能不值得。
使用thin启动服务器(thin start——ssl——ssl-verify——ssl-key-file)服务器。key——ssl-cert-file server.crt),我可以得到相同的日志消息吗从rails服务器?
你应该能够从你的Rails应用程序的根目录tail -f log/development.log
。
我不能继续使用rails服务器作为启动命令(除了由写一个脏别名…)
这个比较棘手,因为使用rails s
时运行的服务器是WebBrick。你可以试试这篇文章中列出的方法:在Rails 4中配置WEBrick使用SSL
作为题外话,Rails应用程序的典型设置是将其代理到SSL终止的nginx服务器之后。这样一来,你的Rails应用程序不需要知道任何关于SSL的事情,同时也给了你许多其他的好处,比如能够从nginx,负载平衡,虚拟主机等提供资源。
如果你有兴趣建立一个与生产环境相同的环境,我可以看看Vagrant。