いよいよ2018年7月が迫ってきまいた。とくに凝ったこともせず、静的サイトを置いているだけなのですが、安心感をご提供するため、うちのサイトにも常時SSL導入しました。
といっても、ホスト先のさくらインターネットが無料SSL"Let’s Encrypt“の自動更新に対応してくれているので、あとは、内部リンクやリダイレクトなどをちょろちょろといじるだけで済みました。
HSTS (HTTP Strict Transport Security) の設定
Webサイトが"Strict Transport Security"というヘッダを返すことで、次回以降、そのブラウザは自動的にhttpsに接続してくれます。これを有効にするため、以下の記述を.htaccess
に追加します。
Header set Strict-Transport-Security "max-age=expireTime; includeSubDomains; preload"
expireTime
は有効期間を秒数で指定します。max-age=31536000
みたいな感じで。includeSubDomains
はサブドメインも対象にする場合に付けます。- Googleでは、ドメインを HSTS preload listsへ登録するサービスをおこなっており、これを利用する場合、
preload
を付けます。
参考:HTTP Strict Transport Security - Web セキュリティ | MDN
リダイレクトの設定
httpをhttpsへリダイレクトするため、さくらのサポート情報にしたがって、以下の記述を.htaccess
に追加します。
SetEnvIf REDIRECT_HTTPS (.*) HTTPS=$1
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{ENV:HTTPS} !on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
サイト内の自ドメインへのリンクを変更
config.tomlの{{ .Site.BaseURL }}
を変更しました。
- 変更前:baseurl = “http://monoworks.co.jp”
- 変更後:baseurl = “https://monoworks.co.jp”
自ドメインを直接記述している箇所をgrepして確認しつつ、httpsに変更しました。
- 固定ページ(会社概要など)
- hugo導入以前に作成したページ
- jsファイルなど
さくらインターネットでドメインにSSLを設定
さくらのサポート情報にしたがって、SSLを導入(手抜き
HSTS preload listsへの登録
HSTSが最初のアクセスに対して無効なことへの対応として、あらかじめ”HSTS Preload List Submission“に登録されたサイトのリストをChromeにハードコードしておくことができます。このリストを他の主要ブラウザも参照しています。
- 登録ページにドメイン
monoworks.co.jp
を入力して、Checkします。 - 問題なければ、Submitの確認項目が表示されるので、チェックを入れてSubmitします。
- Successが表示されたら登録完了です。
Google Search Consoleの設定
プロパティの追加
以下のプロパティをSearch Consoleに追加します。
- http://monoworks.co.jp
- http://www.monoworks.co.jp
サイトマップの追加
- hugoは、記事生成時に自動でpublic直下にindex.xmlとsitemap.xmlを生成するので、これを追加したURL ->
クロール
->サイトマップ
に登録します。 - サイトマップ登録後、
クロール
->Fetch as Google
で取得
ボタンを押し、リクエスト結果一覧のインデックス登録をリクエスト
ボタンを押す。 - 表示されたメッセージの
このURLと直接リンクをクロールする
を選択して送信
ボタンを押す。
古いサイトマップの削除
Serach Consoleの「インデックスステータス」や「検索トラフィック」を確認して、httpのプロパティで検索エンジンからの流入がなくなったら(2週間くらいかかるらしい)、古いサイトマップを削除。
Google Analyticsの設定
管理 -> プロパティ設定 -> デフォルトの URL をhttpsに変更しました。
コメント
コメントなどありましたら、GitHubのディスカッションへお願いします。(書き込みには、GitHubのアカウントが必要です)