2017-04-14 72 views
0

我有一個用Sinatra,Rack和Puma構建的Ruby web應用程序。我使用Sinatra來實現控制器(MVC模式),每個控制器處理不同的路由,並且每個控制器類擴展爲Sinatra::Base。我想啓用TLS,以便通過HTTPS提供到服務器的所有連接。啓用Rack,Puma和Sinatra的HTTPS?

我機架config.ru樣子:

require 'sinatra' 
require 'rack' 

# Start my database ... 

run Rack::URLMap.new(
    '/api/foo' => FooController.new, 
    '/api/bar' => BarController.new 
) 

彪馬自動機架回升。

如何啓用HTTPS?首先,我很樂意使用自簽名證書,但是如何使用有效證書配置服務器?這似乎沒有任何記錄,我發現很令人沮喪。我忽略了一個選項,我可以在我的Rack配置文件的頂層設置選項,例如set :ssl => true也許可以?

類似但無果而終SO帖子: How to make Sinatra work over HTTPS/SSL? How to enable SSL for a standalone Sinatra app?

+0

你想不使用Nginx或Apache Web服務器啓用SSL? –

回答

0

既然你提到你使用彪馬,你可以找到這在他們的文檔:

需要一點點的安全呢?使用SSL套接字!

$ puma -b 'ssl://127.0.0.1:9292?key=path_to_key&cert=path_to_cert' 

在生產部署專用負載平衡器(例如nginx的,HAProxy的,AWS ELB)爲SSL終止通過內部網絡通常負責,並轉發純HTTP流量的應用程序服務器。這些重型Web服務器通常要快得多,更穩定,審計也更好。

相關問題