当サイトの「HSTS」の設定を見直しました。
「HSTS」とは、「HTTP Strict Transport Security」の略で、アクセスしてきた閲覧者のブラウザに対し、「このサイトへのアクセスはすべてHTTPSで接続するようにしてください」と指示する技術を言います。
当サイトのURLが「https://ryoworks.officeonemanage.work」となるのですが、例えばある閲覧者が「http://ryoworks.officeonemanage.work」とhttpでアクセスしても、閲覧者のブラウザは当サイトに設定されたHSTSを記憶し、次回のアクセスからは強制的にhttpsで接続するようになるのです。
これまで、当サイトは「http://~」でアクセスされても「https://~」へ自動的にリダイレクトされるように設定していたのですが、この場合は一度、閲覧者が「http」として接続してしまいます。
「httpでは一切接続しないようにする」という観点からはまだまだセキュリティとしては甘い状態と言えるわけです。
HSTSを設定する方法は簡単なので、以下に書いていきたいと思います。
注意点
一部のページが「http」から始まるようになっているのであれば、まずは「常時SSL化」から行ってください。
次に、「.htaccess」ファイルを記述しますが、現在このファイルがあるかないかで対応が変わります。
まずは、「.htaccess」ファイルがある場合から見ていきましょう。
「.htaccess」ファイルに記述する
HSTSの設定を「.htaccess」ファイルに記述します。
レンタルサーバーにサイトのデータを置いている場合は、普段使っているFTPクライアントツールでサーバーにアクセスし、サイトのトップフォルダへアクセスします。
「.htaccess」ファイルがトップフォルダ内に見つからない場合、FTPクライアントツールで隠しファイルを表示しない設定になっている可能性があります。
「WinSCP」の場合、環境設定ウィンドウを開いた上の場所で設定できる
現在の「.htaccess」ファイルは事前にどこかにコピーを保存しておくなど、バックアップをしておいた方がいいでしょう。
その後ファイルをメモ帳などで開き、元々何か記述してあれば上の行を1行だけ開けて、2行目から以下のように入力します。
ファイルを保存して閉じます。
「.htaccess」ファイルがない場合
元々、「.htaccess」ファイルがなければ作成します。
メモ帳などを新規で開いて、最初の一行を改行して2行目から入力します。
ファイルを保存する際には、「htaccess.txt」と一旦テキストファイル形式で保存しましょう。
FTPクライアントツールでサーバに「htaccess.txt」をアップロードした後、FTPクライアントツール上でファイル名を「.htaccess」に変更します。
開発者ツールで確認
HSTSが設定できているかをブラウザの「F12」キーを押して開く「開発者ツール」で確認してみます。
手順は、以下のようになります。
- 調べたいサイトのページでキーボードの「F12」キーを押す
- 「Ctlr+R」でページを再読み込みする
- 一覧からページのURLをクリックする
- ヘッダーの一覧から「Strict-transport-security:」を探す
- ヘッダーの「レスポンスヘッダー」の一覧から「Strict-transport-security:」を探す
- 先ほど入力した文字が値として表示されているのを確認する
上のように表示されれば設定完了となります。
プリロードは省略可能
設定文字の一番最後に「preload」と指定しています.
HSTSの設定というのは、初回にアクセスしてきた閲覧者がhttpであれば「次回以降」を強制的にhttpsで接続する技術なので、初回だけはどうしてもhttpで接続されてしまう可能性があります。
そのため初回からhttpsを強制する場合には、Googleが管理している「HSTSプリロードリスト」にドメインを登録する必要があり、設定文字にも「preload」という記述が必要になります。
(まとめ)
Webサイトを運営していると、セキュリティ診断で最初に指摘されるのがこの「SSL」周りではないでしょうか。
レンタルサーバーのセキュリティ診断で、「リダイレクトだけではセキュリティが甘い!HSTSをきちんと設定しなさい」と言われたので、今回設定してみました。
サイト運営を始めたばかりのかたやネットショップを自前のサイトで運用しているかたは、サイトのセキュリティチェックを一度受けておいた方がいいかもしれませんね。