エックスサーバーで運営している WordPress サイトを SSL 化(HTTPS 化)する方法を詳しく解説していきます。
少し難しそうに感じるかもしれませんが、手順通りやっていけば 1 ~ 2 時間ほどの作業時間で完了します。
Google は HTTPS をランキングシグナルに採用していますし、セキュリティを向上させるのは読者のためにもなりますから、ぜひやっておきましょう。
HTTPS 化(常時 SSL 化)とは
Web サイト全体を HTTPS にすることを「常時 SSL」と言います。
要するに、サイトの URL が「http://seory.co.jp」から「https://seory.co.jp」になる、と覚えておけば OK です。
HTTPS 化によって、暗号通信で読者が安全にサイトを閲覧できるようになります。また、ほんの少しだけ検索に有利になる可能性もあり、読者にも運営者にもメリットがある施策です。
Google はランキング シグナルとして HTTPS を使用することにしました。
ランキング シグナルとしての HTTPS | Google 検索セントラル ブログ | Google Developers
本記事では、以下 2 つのケースを解説しています。
- 新規サイトを HTTPS 化する場合
- 既存の HTTP サイトを HTTPS 化する場合
いずれの場合も、「サーバー側で HTTPS 設定を行ったあと、WordPress で設定する」という流れで進めていきます。
新規サイトを HTTPS 化する場合
新規サイトを HTTPS 化するのは簡単です。
01. サーバーパネルの確認
最初に、サーバーパネルのデザインが新デザインになっているか確認してください。旧デザインでは自動転送設定ができず、.htaccess を自分で編集しなくてはなりません。

以下と同じデザインになっていれば大丈夫です。

02. ドメイン設定
新規サイトの場合、最初のドメイン設定で以下のチェックマークを ON にしておけば、それだけで SSL 化の準備が整います。
- 無料独自 SSL – 利用する(推奨)
- HTTPS 転送 – HTTPS に転送する
※ デフォルトでチェックが入っています

もしドメイン追加設定時に無料独自 SSL のチェックを入れ忘れていた場合、SSL 設定画面で ON にしてください。

ドメイン設定および SSL 証明書の発行(= HTTPS 化)まで 1 時間ほどかかります。
先に WordPress をインストールしてしまってもよいですが、https:// でアクセスできることを確認してから作業を進めたほうがわかりやすいと思います。
アドレスバーに「保護されていない通信」と表示され、かつ「この接続ではプライバシーが保護されません」という表示になっていたら、SSL 証明書の準備中です。

少し時間がたつと「無効な URL です」と表示されますが、これが正常な状態です。

ドメイン設定と SSL 化が完了すると、エックスサーバーの初期画面が表示されます。

この段階で WordPress をインストールしてください。

03. WordPress 一般設定
WordPress をインストールして管理画面にログインしたあと、[設定]>[一般]と進み、URL を 2 箇所変更します。

| 変更前 | http://example.com |
|---|---|
| 変更後 | https://example.com |
「http」を「https」に変更するだけです。
ここの設定を間違えると管理画面にログインできなくなりますので、間違いがないか再確認して慎重に進めてください。
変更を保存すると強制的にログアウトさせられ、再度ログインして SSL 設定は完了です。
既存の HTTP サイトを HTTPS 化する場合
すでに HTTP でサイトを運営しており、途中から SSL 化する場合は URL の変換作業が必要です。
手順は以下のとおりです。落ち着いて順番に進めてください。
- サーバーパネルで SSL を設定
- WordPress の一般設定で URL を変更
- 内部データをプラグインで置換
- テーマを修正(サイトによって不要な場合あり)
- https にリダイレクト
エックスサーバーを例に解説していますが、「サーバー側の設定」が違うだけであとはどのサーバーでも同じです。
00. バックアップをとる
URL の置換作業等で失敗すると元に戻すのがかなり大変になります。
作業前に必ずバックアップをとってください。
バックアップも復旧もクリックのみで簡単にできる「UpdraftPlus」をおすすめします。
「UpdraftPlus WordPress Backup Plugin」の設定方法&復元方法
01. サーバーで SSL を設定
サーバーパネル[ドメイン]>[SSL 設定]と進み、対象のドメインの右側にあるトグルボタンを ON に変更します。

「反映待ち」と表示され、SSL 証明書の発行・設定完了まで 1 時間ほどかかります。

この段階で https:// にアクセスしても、以下のように「無効な URL です。プログラム設定の反映待ちである可能性があります。」という画面になっているはずです。

サーバーパネルの「反映待ち」が消えるまでしばらく待ちましょう。
待たずにそのまま進めると、1 時間ほどサイトの表示が止まり、WordPress 管理画面にも入れなくなってしまいます。
間違って WordPress の設定を変更しても、1 時間ほどすればサイトが表示されます。強制的に修正する方法もありますが、別の不具合につながる原因にもなるため、しばらく待ってください。
トップページが表示されたら、管理画面に入って作業を続けます。

02. WordPress 一般設定で URL を変更する
管理画面にログインしたら、そのまま[一般設定]に入ります。
「WordPress アドレス」と「サイトアドレス」の 2 箇所を http → https に変更してください。

| 変更前 | http://example.com |
|---|---|
| 変更後 | https://example.com |
「変更を保存」をクリックすると自動的にログアウトするので、再度ログインします。
03. 内部データをプラグインで置換する
続いて、各投稿内のリンクや画像 URL、管理画面からは見えない部分に設定されている URL をすべて https に置換します。
手作業で行うのは現実的ではないので、プラグインを使いましょう。「Better Search Replace」がおすすめです。

プラグインインストール・有効化後、[ツール]>[Better Search Replace]に入ります。
下表のとおり入力・設定してください。
| 検索 | http://seoryco-test.com |
|---|---|
| 次と置換 | https://seoryco-test.com |
| テーブルを選択 | Ctrl + A(Cmd + A)で全選択 |
| Additional Settings | 「ドライランとして実行する」にチェック |

URL 入力部分は、半角スペース等があるとエラーの原因になります。
Word などの文書作成ソフトからコピペすると、見えない空白などが入りますので、コピペする場合は必ずテキストエディターをご利用ください。
もしくは、1 文字ずつ確認しながら URL を入力しても大丈夫です。
問題ないことを確認したら「検索 / 置換の実行」をクリックして、仮テストを行います。
テスト完了後、上部に「DRY RUN: xx tables were searched, xx cells were found ~」というメッセージが出ます(数字は置換数を表し、サイトによって異なります)。
そのまま「ドライランとして実行する」のチェックを外してから、再度「検索 / 置換の実行」をクリックします。

上部メッセージに「with x cells changed in x updates.」と表示されていたら、置換完了です。

プラグインはもう使わないので、そのまま無効化・削除してかまいません。
04. テーマを修正する
ここまでの作業でほぼ完了していますが、サイトによってはテーマファイル内の修正(置換)も必要です。
サイトを開いて、右クリックで「検証」を選択、または F12 キーでデベロッパーツールを表示してください。
コンソールに「Mixed Content」という表示が出ていたら、テーマファイル内のどこかで画像やスクリプトを http で読み込んでいます。

コンソールには画像ソース等が表示されていますので、それを足掛かりにテーマファイル内を確認してください。
サンプルケースでは、子テーマの style.css で背景画像を http で読み込んでいました。

このほかに、自作テーマやかなり古いテーマでは以下のファイルに Mixed Content の原因がひそんでいる可能性があります。
- header.php
- footer.php
- functions.php
- style.css
修正するさい、FTP でテーマファイルをダウンロードして編集しましょう。WordPress 管理画面上(テーマファイルエディター)で修正するのは危険です。
最終的に Mixed Content のアラートが消えていれば完了です。

05. Mixed Content を解消できない場合の解決策
もしどうしても Mixed Content を解消できないときは、強制的に各リソースを https で読み込ませることで解決できます。
方法は 2 つありますので、いずれか 1 つを実行してください。
以下の meta タグを <head> ~ </head> に入れます。
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">以下のコードを .htaccess に追記します。
Header set Content-Security-Policy: upgrade-insecure-requests※ サブドメイン・サブディレクトリにも影響するのでご注意ください。
06. https にリダイレクトする
ここまでの作業で、以下の状態になっているのを再確認しておきましょう。
- サイトが https で表示されている
- デベロッパーツールで Mixed Content アラートが出ていない
問題なければ、https にリダイレクトします。
サーバーパネルの[ドメイン設定]から、ドメイン右側の[詳細]を開いて「HTTPS に転送する」にチェックを入れて保存するだけです。

自分で .htaccess を編集したい場合は、以下のコードを先頭に入れてください。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>以下のような形になっていれば大丈夫です。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPresshttp の URL でアクセスしてみて、https に転送されれば完了です。

外部サイトの URL を変更する
サイトの HTTPS 化が完了したら、Google アナリティクスなど外部サイト・ツールの URL も変更しておきましょう。
リダイレクトされるので急ぎではありませんが、時間があるときにまとめてやっておいたほうがよいと思います。
Google アナリティクスの場合
Google アナリティクスは、管理画面の[データストリーム]から設定を変更します。

「ストリームの詳細」右側の編集アイコン をクリック。

ウェブサイトの URL 欄で「https://」に変更し、「ストリームの更新」をクリックして完了です。

Google Search Console の場合
Google Search Console は、もともと「ドメインプロパティ」で登録していたか「URL プレフィックス」で登録していたかで対応が異なります。
| ドメインプロパティで登録していた | そのまま何もしなくて大丈夫です |
|---|---|
| URL プレフィックスで登録していた | https:// で新規登録してください |
URL プレフィックスの場合、http と https は別サイト扱いです。
https のデータはゼロスタートとなりますので、従来のデータも総合的にチェックしたい場合はドメインプロパティでの登録をおすすめします。
その他サイト
その他、URL を登録していたサイト・ツールを確認していきましょう。
- ASP
- SNS プロフィール
- ブログランキング
Google AdSense はドメインで登録されているので、とくに変更する箇所がありません。
まとめ
運営途中からの SSL 化は、サイトによってかなり面倒な作業になると思います。
作業に自信がない場合、「Really Simple Security」というプラグインを使うのがおすすめです。詳細は以下の記事で解説しています。
途中でうまくいかずエラーが出てしまった場合など、代行作業が必要でしたらお気軽にご相談ください。
