はじめに
今回は、ちょっとしたモヤモヤを解決する記事です。
事象
普段、正常にアクセスできるページでも、たまに「この接続ではプライバシーが保護されません」と表示され、なぜか繋がらない事象が発生する時がございます。
この事象について対処法をご紹介いたします。
事象について確認
- 普段アクセスしているサイトで、「この接続ではプライバシーが保護されません」と表示され、アクセスができない。
- 周りの人にアクセスしてみてもらうと正常にアクセスできる
- リロードするとアクセスできるようになる時がある
- ダメな時は、何をやっても接続できない
- 時間が経過してから接続すると、アクセスできたりする
- アクセスできると、迷宮入りする
※証明書は正しいこと、有効期限が切れていないことは前提になります。
さきに結論
ブラウザからHSTSの設定を削除すると、アクセスできるようになる可能性がございます。
手順
1. Chromeで設定画面にアクセス
URLバーに下記を入力してアクセスし、設定画面を表示します。
chrome://net-internals/#hsts
2. HSTSの設定が登録されているか確認
「Query HSTS/PKP domain」の見出しのDomain入力欄に、対象となるドメインを入力して、Queryボタンを押してみましょう。
例)qiita.comの場合
Found と表示されて、設定値が表示されています。
dynamic_sts_domainに、qiita.comが登録されていますね。
3. HSTSの設定を削除
「Delete domain security policies」の見出しのDomain入力欄に、対象となるドメインを入力して、Deleteボタンを押してみましょう。
例)qiita.comの場合
ボタン押しての特にメッセージは出ません。
4. 再度、2の手順でHSTSの設定を確認
例)qiita.comの場合
今度は、Not Foundと表示されました。
5. WEBサイトにアクセスして確認
接続できるようになりましたでしょうか。
※解消しない場合は、今回の事象とは別の理由が考えられますので、こちらを参照ください。
Google chrome ヘルプ
補足
HSTSとは?
HTTP Strict Transport Security を使用すると、ウェブサイトはブラウザーに、HTTP を使用してサイトを読み込まないことと、HTTP を使用してサイトにアクセスしようとするすべての試みを HTTPS リクエストへ自動的に変換する必要があることを通知することができます。
httpで接続した時に、自動でhttpsにリダイレクトするサイトがあると思いますが、それを事前にブラウザにドメインを設定しておくことで、ブラウザ側でやってしまおうという設定です。
最初から安全なhttps接続ができることと、サーバに対して余計なアクセスを減らすことができます。
Chromeの対応
GoogleがすべてのChromeユーザーに対し、HTTPリクエストを自動的にHTTPSリクエストに変更する「HTTPSアップグレード」を開始したと報じた。
どうやら、サーバ側でHSTSの設定をしなくてもChromeが、良い感じで対応してくれるようです。
おわりに
たまに起きるからこそ厄介なことってありますよね。そんな些細なストレスを解決する引き出しを持っておきましょう。
また、アップデートにより自動でHSTSのようなことをChromeが勝手にやってくれるようになったことを知りました。たまに余計なお世話な時もありますが、いざおかしなことになった時に、裏側で何が起こっているのかを知っておくことは大事なことですね。
※ちゃんと検証、原因特定ができておりませんので、事象の再現手順がわかる方いれば教えてください。