【发布时间】:2014-07-10 18:07:49
【问题描述】:
我有一个在 heroku 上运行的 Rails 4.1 应用程序,它使用 heroku SSL 端点并具有有效的 SSL 证书 (config.force_SSL = true)。主站点上的 SSL 运行良好。我还有一个托管在 Bluehost 上的 Wordpress 博客,不使用 SSL。我正在使用rack-reverse-proxy gem 将博客呈现为 my-app.com/blog。
问题在于 Chrome 和 Firefox 都拒绝从博客加载资产,因为博客不安全。 我该如何解决这个问题?
技术细节
假设 Rails 应用程序是 https://my-app.com。
Wordpress 博客(在 Bluehost 上)位于 http://myappblog.com。
在我的 Wordpress 设置 -> 常规中,我将 Wordpress 地址和站点地址都设置为 https://my-app.com/blog(尽管如果 Wordpress 地址是 http://myappblog.com 或 https://myappblog.com,也会出现此问题)。
Rails routes.rb
get "/blog" => redirect("/blog/")
# I have also tried get "/blog" => redirect("/blog/"), constraints: {protocol: /http/}
config.ru
require ::File.expand_path('../config/environment', __FILE__)
use Rack::ReverseProxy do
reverse_proxy(/^\/blog(\/.*)$/,
'http://myappblog.com$1',
opts = {:preserve_host => true})
end
Chrome 中的控制台错误
[blocked] 'https://my-app.com/blog/' 处的页面已加载完毕 HTTPS,但运行不安全的内容 'http://my-app.com/blog/wp-content/themes/independent-publisher/js/skip-link-focus-fix.js?ver=20130115': 此内容也应通过 HTTPS 加载。
【问题讨论】:
标签: ruby-on-rails wordpress ssl heroku reverse-proxy