3

我一直在尝试将我的 Rails 项目配置为使用 SSL(作为应用程序范围)和 Thin(通过添加 Thin gem 并放置config.force_ssl = trueapplication.rb),但结果是,我遇到了一个烦人的问题。

当我使用启动我的rails服务器rails s并尝试访问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 并且一切正常!:)

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

4

5 回答 5

0

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

config.force_ssl = true

请参阅带有 ssl 支持和 ruby​​ 调试的帖子以及包含有关此主题的更多信息的响应(来自 nathan 和 shree):

于 2013-08-14T12:10:57.497 回答
0

您应该安装自己的 openssl 签名证书。您可以在此页面上找到更多信息

于 2013-08-14T08:50:15.767 回答
0

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

于 2013-08-14T10:59:39.003 回答
0

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

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

ngrok http 3000

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

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

于 2017-02-21T15:39:33.250 回答
-1

这是最简单的解决方案。

https://makandracards.com/makandra/15903-using-thin-for-development-with-ssl

于 2013-08-16T10:44:18.600 回答