半年ほど前に書いた記事では、SSL化しないと決めていましたが、その後、世の中が目まぐるしく変わってしまいました。
まず、エックスサーバーでは標準独自SSLが無料で提供されることになりました。これで、ドメインごとにかかる証明書のコストのことを気にして、サブディレクトリ型などにしてまとめる必要はなくなりました。
次に、懸念だったバリューコマースやA8などのアフィリエイト広告業者も次々とSSL対応を進めています。
さらに、SSLの方がサイトの表示速度が速くなる、という話もあります。これは後日、本当か検証しようかと思います。
私の場合は、まずは下記のサイトを常時SSLにしました。
これからサイトをSSL化するみなさんのために、サイトを常時SSL化する手順をまとめたいと思います。
SSL化と一緒にサイトのアドレスも新ドメインへ移行する内容になっています。無料でSSL証明書を使い放題になったことから、サブディレクトリで運用する必要はなくなり、これを機にサイトごとにドメインを取る方は多いかと思いますので、その方々に参考にしていただければと思います
紹介する手順は、作業中にサイトに影響を与えることなく、じっくり確実にSSL化作業を進められるメリットがあります。
[toc]
前提
なるべく簡単にすませようとしたのですが、やはり多少のIT知識は必要となってきます。具体的には、下記のことを実施できることが望ましいです。
- データベースのバックアップ、リストア
- SSHでのコマンド実行
これらに不安を感じた方は、やめておいたほうがいいかもしれません。
おおまかな流れ
下記がおおまかな流れです。
- SSL証明書を取得してドメインにセットする
- 運用中のWordPressはコピーしたデータベースを参照させる。
- 裏で、コピーしたWordPressとデータベースを使って、SSL化作業を実施する。
- SSL化が終わったら、リダイレクトでSSL化したサイトへ切り替える。
SSL証明書を設定する
SSL化を機に新しいドメインへ移行する場合は、レンタルサーバーの管理コンソールなどからドメインを設定します。また、SSL証明書を取得し、ドメインに設定します。
ちなみに、エックスサーバーの標準独自SSLはエックスサーバー以外で取得したドメインにも適用可能です。そのため、他のドメイン管理業社からドメインを取得しても構いません。
この作業は反映までに時間がかかるので、時間に余裕をもって実施してください。
新しいドメイン向けにWordPressを準備する
SSHなどでログインして、WordPressのディレクトリ一式をまるまるっとcpコマンドなどで新しいドメインのディレクトリにコピーしてください。
また、圧縮して固める、あるいはリポジトリにチェックインするなどして、バックアップも取っておくとよいでしょう。
新しいドメイン向けのデータベースを準備する
これが一番、ややこしいです。
今まで使っていたデータベースを新しいドメイン向けに使い、移行作業を実施します。移行作業が終わるまで、運用中のブログはデータベース(バックアップ用) を参照させて今までどおりの内容を表示させます。
下記が詳細手順です。
- レンタルサーバーの管理コンソールで、新規にデータベース(バックアップ用)を作成します。
- 運用中のブログのデータベースをエクスポートして、 新規作成したデータベース(バックアップ用) へインポートします。つまり、コピーします。
- 動作確認するために、運用中のブログのwp-cofig.phpを編集して データベース(バックアップ用) を参照させてサイトが表示できることを確認します。確認したら、再び元のデータベースを参照するように戻しておきます。
- 運用中サイトのWordPressの管理画面にログインして、サイトのURLとWPのURLを新しいドメイン(https)に変更します。これを実施すると、サイトのURLが変わるので運用中のブログは閲覧できなくなります。次の手順で直します。
- 運用中のブログのwp-cofig.phpを編集して、 データベース(バックアップ用) を参照させます。これで今までどおり表示できるようになります。
- 新しいドメインでも、表示されない画像はありつつも、サイトの閲覧はできるはずです(4.の手順でサイトのURLを新しいドメインに設定してデータベースに保存されているため)。
新しいドメインで地道な移行作業をする
まず、新しいドメインのサイトはWP MaintenanceModeで工事中にします。
次に、プラグインのSearch Regexで画像の参照先を変更します。ドメイン名のフルパス+/wp-contentまで指定して検索・置換するとよいです。
http:// -> https://への一括置換は危険なのでやってはいけません。全てをhttpsにする必要はありませんし、してはいけないのです。
次が地道な作業です。Chromeでサイトの全ページを順番に見ていって、アドレス欄に緑の鍵マークがついていることを確認してください。鍵マークがついていない場合は、Chromeのデベロッパーツールを見ると原因が分かるはずです。
たいていは、画像の参照先がhttpである、というのが多いです。
ブログランキングのバナーのURLを変える
ブログランキングのバナーでSSLエラーが起きる場合がありますが、実はバナーのgif、あるいはjpegのURLをhttpからhttpsに変えるだけで対応することができます。
バナーの画像をダウンロードして、自分のサイトにメディアとして取り込み、そのURLを指定することで解決します。
メニューのリンクも変える
地味に忘れるのはこれです。メニューに固定ページへのリンクを貼っている場合は、WordPressの管理画面から設定しなおす必要があります。
なぜか、Search Regexの一括置換では漏れてしまうようです。
Google Search Consoleのでアドレス変更する
作業が終わったら、WP MaintenanceModeで工事中にしていたのを解除しましょう。
移行元の.htaccessを編集して、新しいドメインへリダイレクトするようにします。元の.htaccessは必ずバックアップを取っておいてください。
1 2 3 4 |
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !【新しいURL】$ [NC] RewriteRule ^(.*)$ https://【新しいURL】/$1 [L,R=301] |
Google Search Consoleで新しいドメインでプロパティを作成し、サイトの所有権の確認まで実施します。
次に、移行元のドメインのプロパティで『アドレス変更』を選択します。
途中の手順の移行元の所有権の確認で、移行元のサイトがリクエストをリダイレクトするためにエラーが発生する場合があります。裏技ですが、所有権の確認方法をhtmlファイルのアプロードにして、移行先のドメイン直下に旧サイトの確認用htmlファイルをアップロードしておくと、旧サイトの確認ができます。上記設定でリダイレクトされるためです。.htaccessをうまいこと書いてもいいのですが、参考にしてください。
アドレス変更のリクエストができたら、新しいドメインのサイトマップを送信して終了です。
まとめ
常時SSL化はこれから流行っていくと思います。手順が参考になれば幸いです。
コメント