Ruby on rails:当使用thin start --ssl时,force_ssl不会从http重定向到https

时间:2013-06-09 12:54:07

标签: ruby-on-rails ssl ruby-on-rails-3.2 ssl-certificate thin

我一直在尝试将我的rails项目配置为使用SSL(作为应用程序范围)使用瘦(通过添加精简gem并将config.force_ssl = true放置到application.rb)但是因此,我有一个烦人的问题

当我使用rails s启动我的rails服务器并尝试访问http://localhost:3000时,它会重定向到https://localhost:3000这是正确的,但它会抱怨缺少SSL认证。

  

SSL连接错误

     

无法与服务器建立安全连接。这可能是一个   服务器问题,或者可能需要客户端   您没有的身份验证证书。

另一方面,如果我使用thin start --ssl启动我的应用并尝试访问http://localhost:3000,则不会重定向到https://localhost:3000并抱怨此问题:

  

未收到任何数据

     

无法加载网页,因为服务器未发送任何数据。

但是访问https://localhost:3000它只显示证书警告,但在同意继续之后一切正常。

所以我的问题是,在使用带有瘦身的SSL(开发模式)时,如何使http到https重定向工作?

完美答案将包含使用rails s正常启动服务器的可能性,而SSL将在应用程序范围内启用,并且访问http重定向到https并且所有工作都可以! :)

在此先感谢,已经搜索了几个小时,但无法找到答案。

5 个答案:

答案 0 :(得分:0)

您应该安装自己的openssl签名证书。 您可以在page

上找到更多相关信息

答案 1 :(得分:0)

您的PC(localhost)可以自签署SSL证书,您的浏览器可以接受它,但我认为浏览器不会自动接受该层的安全证书。也许尝试将您的localhost证书添加到浏览器中?

答案 2 :(得分:0)

验证config / environments / development.rb具有以下行

  

config.force_ssl = true

请参阅帖子thin with ssl support and ruby debug以及有关此主题的更多信息的回复(来自nathan和shree):

答案 3 :(得分:0)

使用ngrok(https://ngrok.com/)。免费。安装很简单。

启动服务器,然后在另一个终端窗口运行

ngrok http 3000

ngrok会给你一个循环回你的开发机器的地址 - 类似于http://randomstringhere.ngrok.io

将它放在浏览器中,您会看到它重定向到https://randomstringhere.ngrok.io,仍然在端口3000上路由到您的服务器

答案 4 :(得分:-1)