httpアクセスが勝手にhttpsにリダイレクトされる件...httpでアクセスしたい!

2022-05-07

Chrome-httpアクセスがhttpsにリダイレクトされる_eyecatch

先日、Google Chromeでhttpでサイトにアクセスしたかったのですが、勝手にhttpsにリダイレクトされてしまってhttpでアクセスできませんでした。

URL欄に手入力で「http」と“s”を抜いて試してもhttpsになってしまうのです…

他のブラウザではそのままhttpでアクセスできるので、調べたところ無事に解決できました。今回はChromeですが、他のブラウザでも原因は同じはずです。

httpsにリダイレクトされる原因はキャッシュか、HSTS設定が濃厚です。

httpアクセスがhttpsにリダイレクトされる

Chromeでhttpでサイトにアクセスしようとしたところ、勝手にhttpsにリダイレクトされてしまってうまくいきませんでした。

接続先のサイトについては「.htaccess」等でのhttpsリダイレクト処理は一切なし。
SSL設定を解除しており、httpsに対応していない状態だったのですが、なぜかhttpsでアクセスされてしまいます…なぜ?

Chrome-httpアクセスがhttpsにリダイレクトされる_001

httpでアクセスしてもhttpsになってしまう…

また変なところで詰まったのですが、無事に解決しました。
わざわざhttpでアクセスしたい人は少ないと思いますが、その時の内容です。

ではさっそくですが…
Chromeでhttpアクセスがhttpsになってしまう原因は主に以下の3つです。

  1. https時のブラウザキャッシュが残っている。
  2. 対象サイト(ドメイン)に対してHSTS設定がされている。
  3. ChromeのHTTPS優先モードの設定がオンになっている。

特に別のブラウザでhttpアクセスを試してみて、httpsに勝手にリダイレクトされないようであれば上記のどれかが原因となっている可能性が高いです。

ではそれぞれの対処方法を詳しく見ていきましょう・w・

原因その1.ブラウザキャッシュ

httpsに勝手にリダイレクトされる原因の1つめがブラウザキャッシュです。

特にhttpでアクセスする前に、1度でもhttpsでアクセスしたことがあるサイトなら、その時の接続情報がブラウザに残っており、これが原因でhttpsでのアクセスになってしまっているのかもしれません。

今回はこれが原因でした。
対処法は簡単でChromeのキャッシュクリアを行えばOK!

メモ

Ctrl+Hで起動できるChrome履歴(chrome://history/)から該当サイトのデータを削除してみてたのですが、これではダメでした。
どうも「キャッシュされた画像とファイル」を削除する必要があるようです。

Chromeで対象サイトのキャッシュを削除する

キャッシュ削除の詳しい手順は以下です。

Chrome-httpアクセスがhttpsにリダイレクトされる_002

Chromeのメニュー()から設定を開く

Chromeを立ち上げ、画面右上にあるメニュー()を開きます。

Chrome-httpアクセスがhttpsにリダイレクトされる_003

プライバシーとセキュリティ>閲覧履歴データの削除を開く

続いて、左側のメニューから「プライバシーとセキュリティ」を開きます。
その中にある「閲覧履歴データの削除」に進みましょう。

Chrome-httpアクセスがhttpsにリダイレクトされる_004

「キャッシュされた画像とファイル」を削除する

閲覧履歴データの削除が開いたら、タブを「詳細設定」にします。
そして「キャッシュされた画像とファイル」にチェックを入れて「データを削除」を押せばOKです。“期限”とあるところのプルダウンは必要に応じて変更して下さい。

この項目のみでダメなら「Cookieと他のサイトデータ」の方も削除してみて下さい。

追記

後日別のリダイレクトを検証している時に分かったのですが、ページによっては「Cookieと他のサイトデータ」の項目が影響していることもあるようです。

なお、この画面はChromeのURL欄に以下を直接入力しても開くことが出来ます。

chrome://settings/clearBrowserData

基本設定から削除しても良いですが、細かく削除できる「詳細設定」がお勧めです。

キャッシュを削除出来たら、httpでアクセスできるか試しましょう。
ダメなら次項のHSTSの削除とHTTPS優先モードの確認も行ってみて下さい。

スポンサーリンク

原因その2.ブラウザのHSTS

現在のブラウザにはhttpでアクセスしようとしても、勝手にhttpsを使うように変更(リダイレクト)するセキュリティが備わっています。

HSTSと呼ばれるもので、これが原因のことも多々あるようです。
WikipediaにはHSTSの説明として以下のようにあります。

HTTP Strict Transport Security (略称 HSTS)とは、WebサーバーがWebブラウザに対して、現在接続しているドメイン(サブドメインを含む場合もある)に対するアクセスにおいて、次回以降HTTPの代わりにHTTPSを使うように伝達するセキュリティ機構である。

HSTSはhttpsのみを提供したいサイトのサーバーに設定するもので、httpでアクセスしても強制的にhttpsに置き換えることでセキュリティを向上させるものらしいです。

http→httpsの置き換えはブラウザが行っているので、HSTSリストから該当サイトのドメインを削除することでhttpでアクセスできるようになるという事です。

Chromeで対象サイトのHSTSを削除する

HSTSは聞きなれない言葉ですが、Chromeで削除するのは簡単です。

Chromeを立ち上げ、URL欄に以下を入力して移動します。

chrome://net-internals/#hsts

これでChromeのHSTSを操作する画面が開きます。

Chrome-httpアクセスがhttpsにリダイレクトされる_005

Delete domain security policiesで対象ドメインの情報を削除する

続いて「Delete domain security policies」というところにhttpでアクセスしたい対象サイトのドメイン(example.com)部分を入力し、その後「Delete」を押します。

これでブラウザに保存された対象ドメインのHSTSが削除できます。

原因その3.HTTPS優先モード

こちら、当記事のコメント欄にて有益な情報をいただいたので追記です。

2021年にリリースされたChrome94から「HTTPS優先モード(HTTPS-First Mode)」という機能が実装されており、これがオンだとhttpでアクセスできないようです。

HTTPS優先モードとは、httpとhttpsの両方が使える状態のサイトにアクセスした際に、Chromeが自動的にHTTPSに接続をアップグレードする機能で、まさしく当記事のHTTPS強制リダイレクトなる振る舞いを勝手にする機能みたいです。

早速確認したところ、自分のChromeでは元々オフになっていましたが、環境によってはこのHTTPS優先モードがオンになっており、これが原因でhttpでのアクセスがhttpsになってしまうことがあるようです。

HTTPS優先モードをオフにする

HTTPS優先モード(HTTPS-First Mode)の設定は以下の場所から行えます。

Chrome-httpアクセスがhttpsにリダイレクトされる_006

Chromeのメニュー()から設定を開く

Chromeを起動し、画面右上にあるメニュー()を開きます。

Chrome-httpアクセスがhttpsにリダイレクトされる_007

プライバシーとセキュリティ>セキュリティを開く

続いて、左側のメニューから「プライバシーとセキュリティ」を開きます。
その中にある「セキュリティ」に進みます。

Chrome-httpアクセスがhttpsにリダイレクトされる_008

「常に安全な接続を使用する」をオフにする

画面を下の方にスクロールすると詳細設定のところに、

常に安全な接続を使用する
移動先をHTTPSにアップグレードし、HTTPSをサポートしていないサイトは読み込む前に警告を表示します

という項目があるはずです。
これがHTTPS優先モードなのでオンになっていないか確認しましょう。

なお、こちらの画面はChromeのURL欄に以下を直接入力しても開くことが出来ます。

chrome://settings/security

HTTPS優先モードがオンになっている場合は、これをオフにすればhttpでアクセスができるようになるはずです。

httpでアクセスできるか確認する

ブラウザのキャッシュ、HSTSの削除が完了したらhttpでアクセスしてみます。

Chrome-httpアクセスがhttpsにリダイレクトされる_009

httpsにリダイレクトされることなくhttpで接続出来た

やっとhttpsに強制リダイレクトされることなく、httpでアクセス出来ました!



まとめ

以上、Chromeでhttpアクセスがhttpsにリダイレクトされる時の解決策でした。

勝手にhttpsにリダイレクトされてしまう時は、

  1. ブラウザキャッシュの削除
  2. HSTSの削除
  3. HTTPS優先モードの無効化

この3つを試してもらえればhttpでアクセスできるようになるはずです。

今回はHSTSの削除から行いましたが、結局はブラウザキャッシュが原因でした。
また、Chromeでの解決方法について書きましたが、他のブラウザでもキャッシュとHSTSが原因でhttpsに勝手にリダイレクトされることがあるようです。

後日コメント欄で、現在のChromeには「HTTPS優先モード」というhttpアクセスを強制的にhttpsにアップグレードする機能があることも知りました。
僕は今までキャッシュとHSTSの削除で解決していたのですが、色々あるんですねぇ...

サイト側もユーザー側もhttpsでアクセスする、された方が良いに決まっていますのでhttpでアクセスするのは意外と面倒でした…

-Webブラウザ
-

site-logo
ありがとうございました!
良かったらシェアしてネ・w・
当サイトはピンバックを受け付けます。
  • この記事を書いた人
ザキ

ザキ

X:@sologaku

プログラミングに興味があり情報系の大学を卒業。

新卒で社会人になるも数年で退職し今はフリーランスとして生きています。

少しでも誰かの役に立てれば...と思い、当サイトでIT関係のハウツーを発信しています。


ソロ学運営者:ザキの自己紹介

© 2020 sologaku