【问题标题】:Losing ssl when on some pages在某些页面上丢失 ssl
【发布时间】:2015-12-17 09:40:59
【问题描述】:

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

config.force_ssl = true 

如果我没有以用户身份登录,那么 ssl 可以工作,并且我会在浏览器 url 栏中看到挂锁,并且我会在所有未登录的页面上看到它。但是,一旦我登录该站点,所有登录页面上的挂锁就会消失。当我登录并选择不同的登录页面时,挂锁会在页面加载时暂时出现,但在加载完成后会消失。这一切都发生在 Chrome 和 Safari 上。我没有使用设计。

这可能是什么原因造成的?

【问题讨论】:

  • 你在用设计吗?
  • 我没有使用设计。我现在已经在问题中包含了这个事实。
  • 日志告诉你什么了吗?您可以单击并检查挂锁以获取信息吗?您是否错过了 cloudlflare 配置? docs.run.pivotal.io/marketplace/integrations/cloudflare/…,您是使用 CDN 还是将资产托管在同一台服务器上?
  • 关于 Laurens 的评论。日志不显示任何相关内容。当挂锁出现时,它具有正确的信息。我查看了文档,发现我的配置没有任何问题。我没有使用 CDN。

标签: ruby-on-rails ssl heroku cloudflare


【解决方案1】:

如果您正在使用设计,请查看以下内容:

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

【讨论】:

  • 我没有使用设计。我现在已经在问题中包含了这个事实。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    在我的例子中,页面访问了一些不安全的断言(例如:AWS S3 中的图像)。 Chrome 开发者控制台显示该页面是混合安全的。将 S3 图像链接从 http 更改为 https 使 ssl 工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 2014-01-11
      • 2015-07-14
      • 2013-08-04
      相关资源
      最近更新 更多