ブラウザ

HSTS起因で、ブラウザで「自動転送設定が正しくありません」が出てくる場合の症状

マインドテックの冨です。

とあるテック系情報サイト日本語サイトの翻訳チームの知人が「画面にエラーが出て、マシン変えてもブラウザ変えても再現する。DNSとかWiFiが原因かと思って、3G/4G回線のテザリングでも出てくる。なんじゃこれ?」と叫んでおられたので、お節介ながら見てみたら、自分も再現するのですね。

さて、これはなんぞと思って、リクエストを見てみると、httpsで送った結果、確かにひたすらに302が返ってきているわけです。

で、それぞれのヘッダーを見てみると、下図のような感じ

リダイレクトURLの設定はLocationヘッダーで行うわけですが、ここは http:// … とHTTP (ポート80)にリダイレクトしようとしているのがうかがえます。つまりはHTTPS(ポート443)リクエストで来てもHTTPで見るように強制しているわけです。

この一方で”strict-transport-security”ヘッダーも送っている事がわかります。これはRFC6797で標準化されている”HTTP Strict Transport Security(HSTS )”と呼ばれるもので、HTTPで接続した際に強制的にHTTPSへリダイレクトし、SSLストリップ攻撃や中間者攻撃などを防ぐために以降のそのドメインへの接続はすべてHTTPSとする機能です。「Chrome」「Firefox」「Safari」「Internet Explorer」「Microsoft Edge」などの主要ブラウザのほとんどがHSTSをサポートしています。

この結果、LocationヘッダーでHTTPにリダイレクトされても、ブラウザ側は合わせて受け取っているHSTSのヘッダーにより、HTTPSでアクセスを試み、サーバーはHTTPS->HTTPへのリダイレクト応答を行い、これがループしていると推測されます。

Strict-Transport-Security:max-age=(有効期間秒数);includeSubDomains

またincludeSubDomainsが指定されていると、サブドメインにもHSTSが適用されるようになります。ここのサイトの場合には英語版の方は逆にHSTSによってHTTPSにリダイレクトしていました。この際に上記の通りにincludeSubDomainsオプションがついているとサブドメインで運用されていた日本語版の方にも影響していたはずです。(この記事執筆時点では、このオプションは設定されていませんでした。)

この設定がされているWebサーバーに対して、何らかの理由でHTTPSでアクセスしてしまった場合、または親ドメインの方でincludeSubDomain付HSTS設定がされている場合でリンクを踏んだ場合、「自動転送設定が正しくありません」とリダイレクトがループしてしまうため、この場合はapache, nginxなどのWebサーバーの設定ファイルを見直してみてください。

(上記のテック系情報サイトの技術窓口向けに連絡メールを投げてみましたが、返事が来ないですねー。2018/2/8現在、上記のヘッダーが付いてくるので日本語版をHTTPSで閲覧しようとすると現象が再現すると思います。復旧するにはブラウザの直近の履歴、キャッシュ、cookieを削除してください。)

参考:

SSL/TLS暗号設定ガイドライン~安全なウェブサイトのために(暗号設定対策編)~(IPA 情報処理推進機構)

HTTP Strict Transport Security (HSTS)

ブラウザのシェアでIEが下がりChromeが主流に

かつてのブラウザ戦争を知る世代にとっては、IEの過半数割れって栄枯盛衰を感じますね。

ついに日本でもIEが過半数割れに、世界はすでにChromeが寡占
http://ascii.jp/elem/000/001/020/1020922/

バージョン3~6あたりのブラウザ間の互換性がひどかった時代に比べれば、それなりにそれぞれのブラウザが標準準拠してきました。そのため、画面での表現上、画面レイアウトが見るに堪えないレベルのという事は無くなりましたので、昔ほどはブラウザシェアの持つ意味は低くなったと思います。それでもWebアプリを外注するようなケースではテストケース作成の段階で、どこまでを対象にするかは悩みどころですね。社内限定利用のイントラ以外では「とりあえずIE限定で」というのも難しくなってくるわけです。

個人的にはChromeのメリットは出始めの頃よりは大きく薄れているように感じます。IEもMozilla系ブラウザも、もっさりとした挙動の中、Chromeの軽さは群を抜いていました。ただ、最近は機能追加によりメモリはバカ食いするわ、挙動は重くなってくるわと、IEやFirefoxを使うのと大差ない感覚ですね。使っている携帯電話がAndroidなのでChromeを使う方が親和性が高いように思えるのと、PCとの連携をするためにChromeも利用していますが、利用規約を見るとちょっと怖い事もあり、普段使いはFirefoxにしています。以前は敬遠していたIEも最近のバージョンは悪くないと思っています。ただ仕事柄か周りの人ではIEを普段使いしている人は見ませんね。そもそもMac使いがかなりを占めるようになってきていますし。

hao123に変わってしまったトップページを戻す方法

ブラウザを開けると「なぜかhao123というサイトになっているのよね~」という声を時々頂まして、PCを拝見すると確かに変わっています。

hao123

これを戻す方法ですが、以外とご存じない方が多いみたいなのでまとめておきます。お使いになっているブラウザによってチェックする箇所が違いますが、該当するような箇所が設定画面にあると思いますので、読み直してください。

(1) Internet Explorer11の場合

  1. 画面右上の「ツール」ボタン(歯車のアイコン)をクリック
  2. 「インターネットオプション」を選択
  3. 「全般」タブ「ホームページ」の欄のURLがhao123になっていると思いますので、これをお好きなサイトのURLに変更して「OK」をクリック

インターネットオプション
上記は Yahoo! Japan に変更した例

(2) Google Chromeの場合

  1. 画面右上の「Google Chromeの設定」ボタン(「≡」三本線のアイコン)をクリック
  2. 「設定」をクリック
  3. 「起動時」のスイッチを設定します。
    1. 最初に何もないページを表示したい時は「新しいタブ ページを開く」
    2. 以前に開いていたページを読み直したい時は「前回開いていたページを開く」
    3. 特定のポータルサイトを開けたい時は「特定の 1 つのページまたは複数のページを開く」にスイッチをいれ、「ページを設定」をクリック。ご希望のサイトのURLを記入してください。

Google Chromeの設定画面

 

 

  • [拡張機能]で、「Hao123 toolbar」というような項目があったらゴミ箱マークで削除
    • http://support.google.com/chrome/bin/answer.py?hl=ja&answer=95421
  •  また、「hao123から変更しても、いつの間にか元に戻っている」という場合、hao123の運営会社であるバイドゥ(Baidu)株式会社が提供しているアプリケーションなどが影響している可能性があります。(日本語変換のIMEなど)インストールした覚えのないソフトはアンインストールしてください。

そもそもなんで「hao123」に変わっているの?

筆者が見た事があるのは、あるフリーソフトをインストールした際に、「ブラウザのホームページをhao123に変更しますか?」という画面があり、デフォルトでOKにスイッチが入っているものがありました。この場合、インストールを進めるのに「次へ」を押してしまうと、上記のようなブラウザの設定変更を許諾した事になります。

また、海外のフリーソフトの中には、このような許諾を取らずに、特定のサイトに設定を変更してしまうケースもありましたし、プリンターのユーティリティーなどをインストールする際に、同じように自社のサービスサイトにリンクURLを変更してしまう場合もあります。

hao123に限らず、ウィルス混入のリスクもありますので、アプリケーションのダウンロードは信頼できるサイトに限定し、また、インストール時の画面には注意してください。