ホームページ制作・Web制作

ブラウザによってhttpsにリダイレクトされる現象

ブラウザによってhttpsにリダイレクトされる現象

一度httpsにアクセスした場合、その後httpにアクセスした時にブラウザによってhttpsにリダイレクトされてしまう現象について。httpサイトをSSL化(https)した時の失敗等、何かしらの理由でhttpsからhttpにアクセスを変更することがあります。その際、各種設定をhttpに戻し、「.htaccess」等のリダイレクト設定も解除したにも関わらず、httpへのアクセスが、httpsにリダイレクトされてしまう場合があります。

ブラウザの接続記録や「HSTS(HTTP Strict Transport Security)」が原因

ブラウザの接続記録や「HSTS(HTTP Strict Transport Security)」が原因

これはブラウザが原因です、ブラウザの接続記録や「HSTS(HTTP Strict Transport Security)」によって、httpへのアクセスがhttpsにリダイレクトされています。

HSTS(HTTP Strict Transport Security)

HSTS(HTTP Strict Transport Security)とは、ホームページがブラウザに HTTP の代わりに HTTPS を用いて通信を行うように指示するものとなります。

httpsにリダイレクトされる現象の解除

httpsにリダイレクトされる現象の解除

httpへのアクセスがhttpsにリダイレクトされてしまう現象を解除するためには、「閲覧履歴データの削除」でサイトデータを一度クリアするか、HSTSに関連するブラウザの設定「domain security policy(ドメイン セキュリティ ポリシー)」をクリアする必要があります。

httpに戻した際にブラウザによってhttpsにリダイレクトされてしまう場合の対処法

httpからhttpsへ自動的にリダイレクトされてしまう現象は、近年のWebセキュリティ強化の流れの中で非常に一般的になっています。これは多くの場合、サーバー側の設定、もしくはブラウザ側のキャッシュやHSTS(HTTP Strict Transport Security)の影響によって引き起こされています。

特にHSTSは、あるサイトに一度でもhttpsでアクセスしたユーザーに対して、今後は強制的にhttps接続を行うようブラウザに記憶させる仕組みです。つまり、管理者がhttpでの動作確認を行いたい場合や、一時的にhttpsを無効化したいと考えた場合でも、ブラウザ側が自動的にhttpsへリダイレクトしてしまうため、意図した挙動を確認できないことがあります。

このような場合、最も簡単な対処方法は「閲覧履歴データの削除」で、対象サイトのキャッシュやCookieを消去することです。これにより、ブラウザに残っているセッション情報やリダイレクトの履歴がリセットされ、httpアクセスが復活することがあります。ただし、HSTSが有効になっている場合には、単純にキャッシュを削除するだけでは不十分です。

HSTSポリシーはブラウザごとに内部で保持されており、これを明示的に消去しなければhttpsへの強制が解除されません。

具体的な手順としては、Chromeを例にすると「chrome://net-internals/#hsts」へアクセスし、対象のドメインを入力して「Delete domain security policies」を実行することで、HSTSの設定をクリアできます。Firefoxの場合は「about:config」から設定を編集するか、HSTS情報を保持している内部データを削除する必要があります。いずれも通常のブラウジング操作では行わない領域のため、作業時には注意が必要です。誤って不要なドメイン情報を消してしまうと、セキュリティに影響を与える可能性があるため、対象ドメインを正しく指定することが求められます。

一方、サーバー側の設定が原因である場合もあります。たとえば、.htaccessやサーバーのリバースプロキシ設定でhttpをhttpsへリダイレクトする記述が行われている場合、ブラウザの設定をいくら変更しても再びhttpsへ飛ばされてしまいます。その場合には、サーバー側のリダイレクト設定を確認し、一時的にコメントアウトする、または条件分岐を入れて特定のIPアドレスからのアクセスだけhttpを許可する、といった対応が必要です。

開発や検証の段階では、あえてhttpsを無効化した状態でアクセスしたい場面もありますので、サーバー設定とブラウザ設定の両面から確認することが大切です。

ただし、根本的に考えれば、https化は今やWeb運用において必須であり、httpでアクセスできる状態を残すこと自体がセキュリティリスクにつながります。

HSTSの仕組みは、悪意ある攻撃者がhttp接続を利用して中間者攻撃を行うことを防ぐためのものであり、ユーザーの安全を確保する役割を担っています。そのため、解除作業を行うのはあくまで開発や検証のために限定すべきであり、公開環境ではhttpsを強制したほうが望ましいのです。

実務的な流れとしては、検証環境やステージング環境を別途用意し、その中でhttpアクセスを維持する形が安全です。本番サイトでは常にhttpsを強制し、ユーザーがhttpでアクセスする余地を残さないようにすることが推奨されます。

もし本番環境でどうしてもhttpを確認する必要がある場合には、内部ネットワークからのみアクセスできる限定的な条件を設定し、一般公開されている部分ではhttpsを維持する方法が現実的です。

httpからhttpsへのリダイレクトを解除するためには、まずブラウザのキャッシュやHSTS設定をクリアすること、次にサーバー側のリダイレクトルールを確認すること、そして解除を行うのはあくまで一時的な開発・検証用途にとどめることが重要だということです。https化の流れは今後さらに強まると考えられ、主要ブラウザや検索エンジンもhttpサイトを徐々に評価の対象外として扱う傾向があります。したがって、公開運用においてはhttpsを前提とした設計を心がけ、httpでのアクセス解除はあくまで例外的な処置として位置づけるべきでしょう。