我一直在尝试将我的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并且所有工作都可以! :)
在此先感谢,已经搜索了几个小时,但无法找到答案。
答案 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)