2014-03-24 41 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