当ブログ「サボライフ」の全ページを常時SSL化したのでその方法を備忘録として残しておく。
環境は、独自SSLを無料&無制限で導入できるエックスサーバー。
ブログじゃなくても手順はほぼ同じ。
常時SSL化のメリットまとめ
- セキュリティ強化(なりすまし、盗聴、改竄などを防ぐ)
- アドレスバーに緑色の鍵アイコンがつく(信頼性アップ)
- Googleが公式で「検索順位の決定要因」と発表済み
- 表示を高速化(環境によってはできない場合あり)
サボライフはただのクソブログで問い合わせ以外のセキュリティ対策はほぼ必要なかったりもするが、将来的なSEOを見越して常時SSL化してみた。アドセンスや主要ASPは既にSSLに対応済みだし困ることは何もないはず。
ワードプレス常時SSL化の手順
- ファイルとデータベースをバックアップ(念のための復元用)
- エックスサーバーの管理画面でSSL化設定
- SSLが反映するまで待つ
- ワードプレスのURL変更
- 「http」として残ったリンクを「https」に置換する
- 「.htaccess」にリダイレクト用コードを追記
- Googleサーチコンソールに再登録
- Googleアナリティクスの設定を変更
1.ワードプレスのバックアップ
方法はなんでもいい。念のため全体まるごとバックアップを取っておくといい。
サボライフでは「BackWPup」を使ってまとめてバックアップを取った。
2.エックスサーバーの管理画面でSSL化設定
- サーバーパネルにログイン
- 「SSL化設定」→ドメイン選択で指定のドメインを選択
- 「独自SSL設定の追加」タブ→「独自SSL設定を追加する(確定)」
CSR情報(SSL証明書申請情報)を入力するという項目は無視でOK。
これでSSL化の申請は完了。
3.SSLが反映するまで待つ
SSL化が反映されるまでは、URLを「http」→「https」に変えてアクセスしてもエラー画面が出る。ブラウザごとに表記は異なるが、エラーが出て表示されないのは同じ。
反映されるまで最大1時間程度と表記があるので、それまではほったらかしでもいい。反映されないうちに次の手順に進んでしまうと管理画面にログインできなくなったりするので注意。そうなった場合はデータベースをいじって直さなければいけなくなったりして知識がない人はヤバイことになるので、必ずエラーが出なくなってから次の作業を行うこと。
当ブログを例にすると「http://sabolife.com/」ではなく「https://sabolife.com/」でアクセスしてサイトが問題なく表示されたタイミングで次の工程に移る。SSLが反映されていない状態だと「https://~」でアクセスしても普段通りサイトが表示されないので間違えることはないだろう。
4.ワードプレスのURL変更
「https://」からアクセスしてサイトが表示されるようになったら、ワードプレスの管理画面でURLを変更する。
「設定 」→「 一般」と進み、「WordPressアドレス(URL)」 「サイトアドレス(URL)」の部分を「http」から「https」に変更し、保存するだけでOK。
5.「http」として残ったリンクを「https」に置換する
ワードプレスのアドレス2箇所のURLを「https」に変更しても、投稿や固定ページ、その他テーマファイル内の「http」から始まる絶対パス指定部分は自動的に置換されないため修正する必要がある。
サイト内のどこかに「http」として残ったリンクがあるサイトは常時SSL化されず、アドレスバーが緑色の鍵アイコンにならない。
「http」として残ったリンクがある場所として考えられるのは
- 投稿記事内
- 固定ページ内
- テーマファイル内(header.phpなど)
などが挙げられる。
記事や固定ページは、大抵は内部リンク(画像とURL)やアフィリエイトタグがそれぞれ絶対パス(http://~~)で指定されたままになっていて常時SSL化できない原因になりやすい。
ひとつひとつ目視で確認するのが面倒なので、プラグイン「Search Regex」を使って一気に置換するのが一般的。ページ数が少ない場合はひとつずつ直してもいい。
記事と固定ページを全部直してもエラーが消えない場合は、テーマに使われているファイル内に「http」が含まれていないか確認し、絶対パス(http://~~)を指定している箇所を修正する。
6.「.htaccess」にリダイレクト用コードを追記
このままだと「http://~~」と「https://~~」どちらでもアクセスできる状態になっているため、アクセス先を「https」に一本化する。
FTPでサーバーにログインして「/public_html/.htaccess」をダウンロードし、上書き編集してアップロードする。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
これで「http」からのアクセスが全て「https」に転送(301リダイレクト)されるようになる。301リダイレクトを使うことで過去の「http」への検索エンジン評価を引き継ぐことができる。
常時SSLの作業自体はここまでで完了で、あとはサイト管理の話。
7.Googleサーチコンソールに再登録
サーチコンソール上では「http」と「https」は別サイト扱いとなるため、再登録する必要がある。
手順は「http」のサイトを登録した時と同じ。
8.Googleアナリティクスの設定を変更
Googleアナリティクスにログインし、以下の2箇所を「https://」に変更する。
「アナリティクス設定」→「プロパティ設定」
→「デフォルトのURL」→「https://」→保存
→「ビュー設定」→「ウェブサイトのURL」→→「https://」→保存
まとめ
エックスサーバーの独自SSLは無料だし、無制限であとで課金されることもないし、数クリックで導入できるしでとっても楽。移転してでも使う価値あると思う。
エックスサーバーは開設してから5年以上使っているけど、独自SSLを無料で使わせてくれるようになるなんて思っていなかった。スペックが上がる新サーバーにタダで移動させてくれた時も感動したけど、サポートも丁寧にしてくれるし本当に最高。
今後もエックスサーバー信者として愛し続けたい。(実はMixHostも気になってる)