ruby-on-rails - ssl_requirement 仅在生产中失败且仅在两个页面上失败

标签 ruby-on-rails ssl

我有一个 Rails 3.2 应用程序,我正在尝试调试一个奇怪的 ssl 问题。

我在整个应用程序中进行页面缓存并维护动态内容,我正在发出 ajax 请求以更新某些方面。

所有缓存的页面都应该仅由 http 请求。当发出 ssl 请求时,除了其中两个之外,所有其他都重定向到 http。

问题是,这两个页面 ArtistsBlog无法重定向回 http,刷新内容的 ajax 请求被取消。据我所知,它正在被取消,因为它将正常的 http 视为不同的站点,并且您无法在 ssl 下向不同的站点发出 ajax 请求。

设置本地签名证书没有帮助。在开发中,这两个页面的行为是适当的。我还在使用 AWS ELB,其中 ssl 在负载均衡器处终止并转到端口 80,这似乎也能正常工作。

我每次都可以强制只将这两个页面重定向到 http,但我更愿意深入了解这一点。

我正在使用 ssl_requirement 进行应用级重定向。

我正在寻找有关如何发生这种情况的想法。我梳理了我的代码库,但在应用程序级别找不到任何可以实现这一点的东西。我不认为我的 apache vhost 是完美的,但只有这两个页面没有任何内容。任何人都知道这可能发生在堆栈的哪个位置?

编辑:

终于意识到,由于页面已完全缓存,因此请求只会命中 apache,而不会命中将被重定向的应用程序。这让我质疑为什么 Ajax 请求被取消。 Ajax 请求发送到同一域但未加密。这不应该只是作为“不安全内容”的警告出现吗?我正在使用 jquery getScript 加载动态内容。

最佳答案

好吧,这将载入愚蠢错误的历史,但我想我会留下来帮助其他人进行谷歌搜索。

简单的答案是我的 ajax 调用不允许通过 ssl 连接。如果您的 ssl_requirement 具有 ssl_allowed 方法,请确保允许通过 ssl 调用加载动态内容的 ajax 方法。否则请求将被取消或获得 302 重定向。

关于ruby-on-rails - ssl_requirement 仅在生产中失败且仅在两个页面上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11236468/

相关文章:

ruby-on-rails - 如何在没有停机的情况下在代码部署后重新启动 Rails 生产服务器

java - 使用 commons-mail 在 Java 中发送电子邮件

ssl - Cloudflare 和 Heroku 之间的加密

java - 不存在主题替代名称添加异常(exception)

dokku+nginx 上的 SSL

ruby-on-rails - 使用不带 gem 的 devise,我可以简单地复制文件吗?

ruby-on-rails - 从 routes.rb 重定向一批 url

ruby-on-rails - rails 生成迁移命令将数据插入到表中

ruby-on-rails - Rails 循环通过 'A..Z' 及以后?

ssl - 使用 OpenSSL 命令行验证协议(protocol)