【问题标题】:Ruby on rails: force_ssl not redirecting from http to https when using thin start --sslRuby on rails:使用瘦启动--ssl 时 force_ssl 不会从 http 重定向到 https
【发布时间】:2013-06-05 06:40:03
【问题描述】:

我一直在尝试将我的 Rails 项目配置为使用 SSL(作为应用程序范围)和 Thin(通过添加 Thin 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,它只会显示证书警告,但在同意继续后一切正常。

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

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

提前致谢,已经搜索了几个小时但找不到答案。

【问题讨论】:

  • 面临同样的问题哥们。有什么线索吗?
  • 您找到解决方案了吗?我正在 Rails4 应用程序上尝试这个。

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


【解决方案1】:

您应该安装自己的 openssl 签名证书。 你可以找到更多关于这个page的信息

【讨论】:

    【解决方案2】:

    您的 PC 作为(本地主机)可以自签名 SSL 证书,并且您的浏览器可以接受它,但我认为浏览器不会自动接受该层上具有安全性的证书。也许尝试将您的 localhost 证书添加到浏览器?

    【讨论】:

      【解决方案3】:

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

      config.force_ssl = true

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

      【讨论】:

        【解决方案4】:

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

        只需启动您的服务器,然后在另一个终端窗口中运行

        ngrok http 3000
        

        ngrok 会给你一个循环回你的开发机器的地址——比如http://randomstringhere.ngrok.io

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

        【讨论】:

          【解决方案5】:

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-04-28
            • 1970-01-01
            • 2015-10-23
            • 1970-01-01
            • 1970-01-01
            • 2019-05-17
            • 1970-01-01
            相关资源
            最近更新 更多