2017-04-14 43 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服务器通常要快得多,更稳定,审计也更好。

相关问题