42

Railsアプリケーションを使用していましたconfig.force_ssl = trueが、SSL暗号化は必要ありませんが、アプリは引き続きhttpsにリダイレクトされます。これはApacheのHTTPStrictTransportSecurityの問題だと読みました。どうすれば無効にできますか?

4

5 に答える 5

74

これは Apache の問題ではなく、Rails が HSTS ヘッダーを送信するという事実にあります。

Chrome では、 ImperialViolet: Chrome の HSTS UI でabout:net-internals説明されているように、 に移動して HSTS 状態をクリアできます。301 (永続的な) リダイレクトも使用するため、キャッシュをクリアする必要がある場合もあります。config.force_ssl = true

さらに、この回答によれば、アプリケーションに max-age=0 の STS ヘッダーを送信させることもできます。コントローラーで:

response.headers["Strict-Transport-Security"] = 'max-age=0'
于 2012-05-17T09:20:52.943 に答える
1

これについて少し考えてみました。キャッシュ時間を 0 に設定するのが最善の策です。これをオフにする場合は、クライアントのブラウザーをクリアするために数週間 0 のままにしておく必要があります。Chrome で HSTS をクリアする必要がある場合 (自分のブラウザー用)chrome://net-internals/#hstsは、アドレス バーで使用して、特定のブラウザーでサイトのキャッシュをクリアできます。下記の「出入り口」と組み合わせると重宝します。

カスタム ヘッダー => キーを設定/スプーフィングすることで、一時的な HSTS モードを設定できます。基本的に、特別なリクエスト ヘッダーが存在し、それがキーと一致する場合は、HSTS に必要なキャッシュ時間を設定します。これにより、自分以外のすべてのトラフィックに対して HSTS をオンまたはオフにすることができます。グローバルに有効にする前に HSTS を試すのに役立ちます (すべてのアセットが読み込まれていることを確認するため)。また、何かが修復されている間にクライアントのキャッシュを一時的にクリアしたい場合にも役立ちます (テストの余地を残しておきます)。

于 2015-02-18T21:04:44.547 に答える