Android Heroku不验证证书请求,为什么?

Android Heroku不验证证书请求,为什么?,android,ruby-on-rails-3,ssl,heroku,Android,Ruby On Rails 3,Ssl,Heroku,我有一个运行在Heroku中的RubyonRails服务器,我一直在尝试添加SSL,以便与Android开发的应用程序客户端进行通信 我在Heroku的网站上创建了一个as,并添加了端点as。一切似乎都很完美,我测试了证书,它也起了作用。为了强制服务器重定向到https协议,我还添加了“rack ssl enforcer”gem 问题是,当在头/负载(REST控制台或curl)中使用没有证书的服务器路由时,我认为ruby服务器应该拒绝请求,仅当请求具有有效证书时才允许。但是,它返回的值与项目中没

我有一个运行在Heroku中的RubyonRails服务器,我一直在尝试添加SSL,以便与Android开发的应用程序客户端进行通信

我在Heroku的网站上创建了一个as,并添加了端点as。一切似乎都很完美,我测试了证书,它也起了作用。为了强制服务器重定向到https协议,我还添加了“rack ssl enforcer”gem

问题是,当在头/负载(REST控制台或curl)中使用没有证书的服务器路由时,我认为ruby服务器应该拒绝请求,仅当请求具有有效证书时才允许。但是,它返回的值与项目中没有SSL协议时的值相同


我还需要配置什么吗?为什么会发生这种情况?

您是否已按说明添加了相关的中间件配置


在Rails>3.2中,可以设置此配置

config.force_ssl = true

不需要额外的Gem或机架中间件。

需要“机架/ssl”功能正常,但“config.middleware.use Rack::ssl”功能不正常,因为对于机架ssl强制,我必须使用“config.middleware.use Rack::SslEnforcer”。在Heroku中,仍然存在相同的问题,但运行“rails s-e production”时,浏览器会引发:“SSL连接错误无法与服务器建立安全连接。这可能是服务器存在问题,或者可能需要您没有的客户端身份验证证书。”我尝试了:curl--cert server.crt“”我收到:无法设置私钥文件:“server.crt”类型PEM。有什么主意吗?很好。但是为什么要运行
curl-v呢https://www.example.com
当我应该收到禁止或错误的请求时,我仍然会收到页面?为什么你应该收到禁止的请求?你强制使用https,你得到了,这很好。但是,通过这种方式,任何人都可以获取或发送服务器数据。我想为Android应用程序客户端提供一些路由。例如,我有一条路线,负责在json中列出一个国家的所有城市:
https://example.com/cities/brazil
。今天,任何运行
curl-v的人https://example.com/cities/brazil
可以获取所有巴西城市,无论是否有证书。这就是问题所在。我认为只有通过正确证书的请求才能检索城市。我怎样才能解决这个问题?
config.force_ssl = true