設定config.force_ssl
が含まれていActionDispatch::SSL
ます。ドキュメントでは、機能を次のActionDispatch::SSL
ように説明しています (明確にするために強調を加えています)。
こちらのインクルードと ActionDispatch::SSL のドキュメントはこちらをご覧ください。
ドキュメント
このミドルウェアは、 でスタックに追加され、config.force_ssl = true
で設定されたオプションが渡されますconfig.ssl_options
。安全な HTTP リクエストを適用するために、次の 3 つのジョブを実行します。
TLS リダイレクト: http:// 要求を
、同じ URL ホスト、パスなどを使用して https:// に永続的にリダイレクトします。デフォルトで有効になっています。config.ssl_options
宛先 URL (例: redirect: { host: "secure.widgets.com", port: 8080 }
)
を変更するように設定するか、redirect: false
この機能を無効にするように設定します。
安全な Cookie: Cookie にフラグを設定しsecure
て、http:// 要求と一緒に送信してはならないことをブラウザーに伝えます。デフォルトで有効になっています。この機能を無効にするには、 で設定
config.ssl_options
します。secure_cookies: false
HTTP Strict Transport Security (HSTS):このサイトを TLS のみとして記憶し、TLS 以外のリクエストを自動的にリダイレクトするようにブラウザに指示します。デフォルトで有効になっています。で構成config.ssl_options
しhsts: false
て無効にします。HSTS を構成するには、次のように設定config.ssl_options
します。hsts: { … }
expires
: これらの設定が維持される時間 (秒単位)。デフォルトは
180.days
(推奨) です。ブラウザ プリロード リストの資格を得るために必要な最小要件は です18.weeks
。
subdomains
:true
これらの設定をすべてのサブドメインに適用するようブラウザに指示するには、 に設定します。これにより、サブドメイン上の脆弱なサイトによる傍受から Cookie が保護されます。デフォルトはtrue
です。
preload
: このサイトがブラウザのプリロード HSTS リストに含まれる可能性があることを宣伝します。HSTS は、まだ HSTS ヘッダーを確認していないため、最初の訪問を除くすべての訪問でサイトを保護します。このギャップを埋めるために、ブラウザー ベンダーは HSTS 対応サイトの組み込みリストを含めています。https://hstspreload.appspot.comに移動して、含めるサイトを送信します。HSTS をオフにするには、ヘッダーを省略するだけでは不十分です。ブラウザーは、有効期限が切れるまで元の HSTS ディレクティブを記憶します。代わりに、ヘッダーを使用してブラウザに HSTS をすぐに期限切れにするように指示します。設定hsts: false
は のショートカットですhsts: { expires: 0 }
。
リクエストは、次の方法でリダイレクトをオプトアウトできますexclude
。
config.ssl_options = { redirect: { exclude: -> request { request.path =~ /healthcheck/ } } }