我目前正在使用rails 5.2.1。当我启动我的rails服务器时,我做:
rails s -p 3000 -b x.x.x.x(ip) -e production -d
这将启动使用puma的rails服务器。有没有办法在我的rails应用程序中使用SSL?
只要您在config目录中的某个位置有本地密钥,您就应该能够:
rails s puma -p 3000 -b 'ssl://0.0.0.0:3000?key=config/your_key_file.key&cert=config/your_certificate_file.crt'
如果您需要知道如何生成本地证书和密钥,这是一个很好的帖子:https://rossta.net/blog/local-ssl-for-rails-5.html#create-a-self-signed-certificate
不要将Puma直接暴露给互联网 - puma的设计是假设它将在反向代理之后,例如nginx。
nginx层将为您的应用程序提供另一个层或保护,并具有显着加快应用程序可能提供的任何静态文件(资产)的额外好处。
您可以使用puma的-b
选项(尝试puma -help
)使用SSL / TLS,但除非您有其他选择,否则我会避免这种情况。
只是为了澄清,我是碘HTTP / WebSocket Ruby服务器的作者,它也支持SSL / TLS ...考虑这个建议非常明智:我推荐一个反向代理。