【HSTS】ブラウザからのアクセスを強制的にHTTPSにする手順【AWS対応版】

前回の記事までの設定を行えばブログ自体は始められますが、前回の設定だけではhttps接続ができません。https通信ができなくともブログ運営自体には支障はありませんが、よりセキュアな通信とGoogle検索で少しでも表示を上位にするために是非設定しておきましょう。

WordPress導入の前回までの記事は以下を参照してください!

【HEROKU】Wordpressブログを無料で導入する方法比較【AWS】
Wordpressブログを無料・広告なしで運営する方法としてHEROKUとAWSを比較してみました。比較対象として、XServerとロリポップとの違いも書いています。
【2016年最新版】KUSANAGI on AWSで無料ブログを作成する手順
当ブログはAWS上で動いています。AWSであれば最初の1年間は無料で動かすことができるのでおすすめです。今回はAWSとWordpress...
無料でWordpress!Wordpress on KUSANAGIの初期設定方法!
前回の記事ではKUSANAGIを動かすためのAWSの設定をしました。AWSの設定がまだの方はこちらを参照してください。 ...
スポンサーリンク

AWSの設定

セキュリティグループ設定

現状のままではAWS上でhttps接続が許可されていないので、SSL通信を許可する設定を行います。

「EC2ダッシュボード」画面の左側のセキュリティグループリンクをクリック。画面中央の一覧の中で、グループ名が「KUSANAG for AWS -Wordpress」のレコードのチェックボックスにチェックを入れます。画面下部の「インバウンドタブ」をクリックして表示された欄の、「編集」ボタンをクリックします。

ポップアップ表示される「インバウンドルールの編集」画面で、「ルールの追加」ボタンをクリックしましょう。追加されたレコードの「タイブ」ドロップダウンで「HTTPS」を選択して「保存」をクリックします。

nginxの設定

以上の設定でブログのhttps通信が有効になりました。続いてhttp通信を自動的にhttps通信に置き換えるようにnginxの設定をしていきましょう。

まず「ターミナル」か「TeraTerm」でAWS上のEC2に接続してください。

$ ssh -i /path/to/*.pem centos@52.69.22.113

続いてnginxのhttps用の設定ファイルを編集していきます。”maru-life”の部分は前回の記事のプロビジョニングで指定した名前になります。

$ sudo vi /etc/nginx/conf.d/maru-life_ssl.conf

以下の部分の「#add_header Strict-Transport-Security “max-age=31536000;”;」の「# 」のみを削除してコメントアウトを解除します。

location ~ [^/]\.php(/|$) {
    ...
    add_header X-F-Cache $upstream_cache_status;
    add_header X-Signature KUSANAGI;
    # add_header Strict-Transport-Security "max-age=31536000;";
}

その後に「add_header Strict-Transport-Security “max-age=31536000;includeSubDomains;preload”;」のように書き換えます。”max-age=31536000;”の後ろの「”」の前に「includeSubDomains;preload」を加えることになります。

文字にすると複雑ですが、以下のようになれば大丈夫です。

add_header Strict-Transport-Security "max-age=31536000;includeSubDomains;preload";

編集が終わりましたらnginxを一度再起動します。

$ sudo systemctl restart nginx

自分のブログに2回httpでアクセスすると自動的にhttps通信になるはずです。

HSTS登録

上記まででブラウザにhttps通信をするようにできましたが、まだ1回目のアクセスではhttp通信のままです。「HSTS preload list」に登録して、1度目のアクセスからhttps通信ができるようにしましょう。

nginx設定

「HSTS preload list」に登録するためには、httpページがhttpsページにリダイレクトされていなければならないため、先にnginxの設定を変更します。

今回はhttp通信の設定を変更するためhttp用の設定ファイルを編集します。EC2に接続した状態で

$ sudo vi /etc/nginx/conf.d/maru-life_http.conf

上から12行目に「# rewrite ^(.*)$ http://52.69.22.113$request_uri permanent; # SSL ONLY
」という部分があるので「#」を削除して、コメントアウトを解除します。これですべてのhttpページは対応するhttpsページにリダイレクトされるようになります。

HSTS preload list登録

リダイレクト設定だけでは通信が2回発生してしまうので最初からhttps通信になるように「HSTS preload list」に登録していきます。

HSTS preload list」にアクセスして、ドメインを入力、「Check status and eligibility」ボタンをクリックします。

「Submit」画面が表示されるので、すべてにチェックが入っていることを確認して「Submit ドメイン名 to HSTS preload list」ボタンをクリック。

まとめ

以上でHSTSの登録は終わりです。ここまでくれば、あとは好きなようにブログライフを始めることができます。次回はWordpressのおすすめ初期設定について公開したいと思います。

スポンサーリンク

シェアする