在某些页面上丢失ssl

时间:2015-12-17 09:41:00

标签: ruby-on-rails ssl heroku cloudflare

我正在使用rails 4.2.2,在Heroku上部署到生产并使用免费级别的Cloudflare for ssl。在我的production.rb文件中,我已经设置了

config.force_ssl = true 

如果我没有以用户身份登录,那么ssl正常工作,我在浏览器网址栏中看到挂锁,我看到所有未签名的页面。但是,一旦我登录该站点,挂锁就会在所有已登录的页面上消失。当我登录并选择其他登录页面时,挂锁会在页面加载时暂时显示,但在加载完成后会消失。所有这些都发生在Chrome和Safari上。我没有使用Devise。

导致这种情况的原因是什么?

3 个答案:

答案 0 :(得分:1)

如果您正在使用设计,请看一下:

https://github.com/plataformatec/devise/wiki/How-To:-Use-SSL-(HTTPS)

答案 1 :(得分:1)

感谢Cloudflare的支持团队,我能够解决这个问题。

已登录的用户可以使用gravatar,但gravatar_image_tag未与安全设置一起使用。这意味着图像是使用http而不是https传输的。这可以通过查看开发人员控制台来看到,该控制台显示错误,指示页面显示混合的http和https。为了解决这个问题,我刚刚使用了gravatar_image_tag的安全设置。

答案 2 :(得分:0)

在我的情况下,页面访问一些安全中的断言(例如:AWS S3中的图像)。 Chrome Developer Console显示该页面是混合安全的。将S3图像链接从http更改为https使ssl正常工作。