0

だからここに問題があります。

SSLを使用するサイトがあります。(https://www.archerandreed.com/)それは素晴らしい働きをします。

ブラウザでarcherandreed.com/と入力しても、すべてが正常に機能します。

残念ながら、ブラウザに https://archerandreed.com/またはhttp://archerandreed.com/と入力すると、SSL証明書の警告が表示されます。

www.archerandreed.com && archerandreed.comの証明書を追加するだけでよいと思いましたが、herokuは2つのsslエンドポイントを受け入れなくなりました。

それで、可能な解決策は何ですか。1つの解決策はワイルドカードドメインを購入することだと思いますが、それは苦痛です。私のアプリはRails3.2.6です。それらがサブドメインである場合にのみSSLを強制することは可能ですか?ルート.rbまたはconfig/environment / product.rbでそれを行うことはできますか?よろしくお願いします。

4

2 に答える 2

2

だから私は探していたものを見つけたと思うし、これはherokuで何らかの形で文書化されるべきだと思う...

1) config.force_ssl = true をオフにします。

config.force_ssl = false  # config/environments/production.rb

2) application_controller には次のものがあります。

class ApplicationController < ActionController::Base
  before_filter :ensure_domain
  before_filter :force_ssl
  APP_DOMAIN = 'www.archerandreed.com'

protected
  def force_ssl
    if Rails.env.production?
      redirect_to :protocol => 'https' unless request.ssl?
    end
  end

  def ensure_domain
    if Rails.env.production? && ((request.env['HTTP_HOST'] != APP_DOMAIN) )
      # HTTP 301 is a "permanent" redirect
      redirect_to( "https://#{APP_DOMAIN}", :status => 301) and return
    end
  end
end
于 2012-07-28T16:05:06.863 に答える
0

別の解決策(他のいくつかのスレッドで取り上げられているように-たとえばここで)は、ALIASレコードの使用を許可するDNSimpleのようなDNSプロバイダーを使用することです。次に、ネイキッドドメイン(この場合はarcherandreed.com)のALIASレコードを追加します。これは、ネイキッドドメインをherokuにポイントするためにAレコードを使用したくないためです。

その後config.force_ssl、production.rbで使用でき、アプリケーションコントローラーにフィルターを追加する必要はありません。

于 2013-02-06T17:20:31.457 に答える