このところ以前にも増して、WordPress サイトのサーバー移転作業が多い。
エックスサーバーから mixhost へ、常時 SSL 化して稼働している状態のままの WordPress サイトのサーバー移転は、通常のサーバー移転より手間が多く手順も違うので、以下、覚え書き。
- 【 現在のサイト( WordPress )環境 】
- ドメイン管理 : お名前.com
- レンタルサーバー : エックスサーバー
- SSL 証明書 : Let’s Encrypt
- 【 移転後のサイト( WordPress )環境 】
- ドメイン管理 : お名前.com
- レンタルサーバー : mixhost
- SSL 証明書 : 移転時は Let’s Encrypt ⇒ 期限切れ後自動的に COMODO社
目次
mixhostへドメイン登録
サイトを移転するために、まず、移転先サーバー mixhost へ独自ドメインを登録する。
1 . mixhost の「 cPanel 」にログインして「ドメイン」の「アドオンドメイン」をクリック。
2 .「 アドオンドメインの作成 」の「新しいドメイン名」に登録する独自ドメインを入力する。
3 . 入力したら「ドメインの追加」をクリックしてドメイン登録が完了。
※「サブドメイン」と「ドキュメントルート」は自動的に入力されて、サブドメインは動作確認用として使用できる。
「 mixhost 」の独自ドメインの設定方法は ⇒ こちら
サーバー移転後にサイトが表示されない時間帯を無くす
ドメイン登録が完了したので、通常なら移転元のエックスサーバーからエクスポートしたデータベースとダウンロードしたサイトデータを mixhost に移転してネームサーバーを設定変更(DNSの切り替え)するという手順で移転作業を進めるのだけど…。
mixhost で利用できる無料 SSL は、ネームサーバーの設定変更後(DNSの切り替え後) 約24 時間経過しないと有効化しないので、通常の手順で作業を進めると、サイトを移転してネームサーバーの設定を変更してから SSL が有効化するまでの約24時間、全ページ認証エラーで非表示になってしまい、移転したサイトを見ることが出来ない。
DNS(ドメイン・ネーム・システム)は、ドメイン名でサーバーへアクセスした際に、どのサーバーが参照されるかを決定するためのシステムのこと。
なので、ネームサーバーの設定変更から SSL が有効化するまでのページが非表示になる時間を無くすために、サイトのデータとデータベースを移転する前に、移転先の mixhost に登録したドメインに、事前に SSL 証明書をインストールして有効化(発行)する。
移転前に SSL を有効化してしまうので、サイトが非表示になる時間が無く移転が出来る。
※ エックスサーバーで使用している SSL がドメイン認証型の SSL で、さらに、mixhost で、SSL の持ち込み(他社で取得したSSL 証明書をインストールして利用する機能)に対応しているので、ネームサーバーの設定変更前に SSL をインストールして有効化(発行)する事が可能だけど、サーバーの SSL の仕様は様々なので要確認。
ドメイン認証型 SSL は、申請者が証明書に記載のあるドメイン(コモンネーム)の使用権を所有していることを確認し発行される証明書。
移転先ドメインにインストールするSSL証明書を発行
サイトが非表示になる時間を無くすために、エックスサーバーで使用している SSL 証明書を取得して、mixhost に登録したドメインにインストールして有効化(発行)する。
SSL サーバー証明書とは、SSLを利用して暗号化通信を行うための電子証明書のことで、Web ブラウザが HTTPS サイトに接続する時には SSL サーバーの証明書を受け取り、その有効性を確認した上で通信が行われる。
「Let’s Encrypt」の証明書を取得
エックスサーバーで使用している「Let’s Encrypt」の証明書を取得するために、ブラウザから SSL 証明書が取得できる無料オンラインサービスの「 SSLなう!」を開く。
※証明書の発行申請は、一週間に5回以上はできないので注意。
「 Let’s Enctypt 」へ登録
「 SSLなう!」画面から「 Let’s Enctypt 」へ登録する。
メールアドレスを入力して、「 Let’s Enctypt利用規約に同意します。」のチェックボックスを選択して「登録」ボタンをクリック。
「 Let’s Encryptへの登録に成功しました! 」と表示されたら完了。
チャレンジトークンの取得
次に、チャレンジトークンを取得する。
- 「証明書発行を希望するドメイン名」に証明書を発行するドメイン名を入力。
- www が付いたサブドメインの証明書も発行するので「追加」をクリックして www が付いたサブドメインも入力。
- 「トークンを取得」ボタンをクリック。
※ www が付いたサブドメインのチャレンジトークンを取得しておかないと、サイト移転後、www が付いたサブドメインでアクセスした際に、ブラウザによっては「安全な接続ではありません」という画面が表示され、サイトが表示さなくなるので注意。
( Google Chrome はリダイレクトして表示されるけど、Firefox や IE では、リダイレクトされずエラーになる)
「チャレンジトークンの取得に成功しました!」と表示されたら完了。
ドメイン名の所有確認
1 . ドメイン名の所有確認のための「 URL 」と「ファイル内容」が表示されるので、証明書を取得するドメイン直下に ” .well-known/acme-challenge/ “ という階層(赤線部分)を作って、そこに指定の文字列(赤枠部分)をコピペした指定の文字列名のファイル(黄線部分)を作って配置する。
www が付いていないドメインと付いているサブドメイン両方の所有確認が必要なので、それぞれのファイル作って同じ階層に配置。
2 . 配置後、その URL にアクセスして「ファイル内容」が表示されたら「確認」をクリック。
※ファイル内容が表示されない場合は、.well-known フォルダの ” . ” や、作成したファイルの拡張子の有無を確認して修正する。
3 . ドメインの所有が確認されて「所有権の確認に成功しました!」と表示されたら完了。
証明書発行申請(秘密鍵)
所有権が確認できたら、次は証明書の発行申請をする。
1 . まず、「 RSA 」タブの「生成( 2048bits )」をクリックして「秘密鍵」を生成する。
2 . アルファベットの文字列が「秘密鍵」なので、「秘密鍵」が生成されたら「証明書発行申請」をクリック。
「証明書の取得に成功しました!」と表示されたら SSL 証明書の発行が完了。
発行された証明書
上記のように文字列が表示されれば、mixhost のドメインにインストールする証明書の発行は完了。
※この後、上記の文字列は入力(コピペ)するので画面はそのまま残しておく。
mixhostのドメインへSSL証明書のインストール
SSL 証明書が発行できたので、mixhost に登録したドメインに、証明書をインストールして有効化する。
1 . mixhost の「 cPanel 」にログインして「セキュリティ」の「 SSL/TLS 」をクリック。
2 .「サイトの SSL のインストールおよび管理 (HTTPS)」の「 SSL サイトを管理します。」をクリック。
3 . 証明書をインストールするドメインをプルダウンリストから選択して「 SSL なう」で発行した【 cert.pem(サーバー証明書)】と【 サーバーで使用するSSL秘密鍵】と【 chain.pem (中間証明書)】を mixhost の所定の場所に入力(コピペ)する。
コピーする SSL なう!で発行した証明書 | 入力(ペースト)する mixhost の場所 |
---|---|
【 A 】 cert.pem(サーバー証明書) | 【 1 】 証明書:(CRT) |
【 B 】 サーバーで使用するSSL秘密鍵 | 【 2 】 秘密キー(KEY) |
【 C 】 chain.pem (中間証明書) | 【 3 】 証明機関バンドル:(CABUNDLE) |
※「SSLなう!」の「fullchain.pem(サーバー証明書+中間証明書)」は使用しないので注意。
所定の 3 箇所に入力(コピペ)できたら、「証明書のインストール」をクリック。
4 .「 SSL 証明書が正常に更新されました」の画面が表示されればインストール完了。
正常にインストールできていればドメインとサブドメインに緑色のカギがかかっているので有効化が完了。
※「 Let’s Encrypt 」の証明書の有効期限が過ぎたら自動的に mixhost 標準の SSL 証明書が自動インストールされる。
(この時点では、赤色表示で鍵がかかっていないものもあるが、自動インストール後はすべて緑色表示になり鍵がかかった状態になるので心配無し)
これで移転先の SSL の有効化が完了。
ここからは、通常通りのサイト移転作業を行う。
移転元からAll-in-One WP Migrationでデータをエクスポート
移転先 mixhost のドメインを SSL 化したので、All-in-One WP Migration を使ってサイトを移転する。
All-in-One WP Migration は、サイトデータのバックアップおよび復元の機能がある WordPress のサーバー移設が簡単にできるプラグイン。
まず、移転元のエックスサーバーの WordPress サイトに All-in-One WP Migration をインストール。
インストールから有効化
- ダッシュボードにログインして、管理画面左側「プラグイン」から「新規追加」で「 All-in-One WP Migration 」を検索。
- 「 All-in-One WP Migration 」が表示されたら「いますぐインストール」をクリック。
- インストールが完了したら「プラグインを有効化」をクリックして有効化。
プラグインを直接ダウンロードして設置する場合は、下記からインストールして有効化。
『 All-in-One WP Migration 』の公式サイトは ⇒ こちら
移転元からデータをエクスポート
まず、有効化した「 All-in-One WP Migration 」を使って、WordPress サイトデータをダウンロードする。
1 . 管理画面左側「 All-in-One WP Migration 」から「エクスポート」をクリック。
2 . 「エクスポート先」から「ファイル」をクリックしてエクスポート開始。
3 . エクスポートが完了したら、データをパソコンにダウンロード。
※エクスポート、インポートともに 30 分ぐらいかかるので注意。
『 WordPress の他サーバーからの移転方法( All-in-One WP Migration を使用)』は ⇒ こちら
移転先のmixhostへWordPressをインストール
SSL 証明書をインストールした mixhost に登録したドメインに WordPress をインストールする。
※ mixhost には、WordPress をインストールするために「簡単インストール機能」があるので利用すると便利。
『簡単アプリインストールでWordPressをインストールする方法』は ⇒ こちら
1 . mixhost の「 cPanel 」にログインして、「スクリプト」の「 WordPress 」をクリック。
2 . WordPress 画面の「 Install Now 」をクリックしてインストール。
ソフトウェアセットアップ画面の設定をしてインストールして完了。
hostsファイルを編集してmixhostにアクセス
移転先の mixhost に All-in-One WP Migration をインストールして、エクスポートしたデータをインポートすればサイト移転が完了なのだが、まだ、ネームサーバーの設定変更( DNS の切り替え)前で、ネームサーバーがエックスサーバーを向いている現状なので、移転先の mixhost の WordPress サイトにログインすることができない。
hosts(ホスツ)ファイルは DNS の代わりにホスト名とIPアドレスの紐付けを指定するもので、自身が使用しているコンピュータに存在しているので、修正することによってそのコンピュータにのみ参照サーバーを指定できる。
なので、hosts ファイルを編集して、ネームサーバーが向いていない( DNS 登録していない) mixhost に一時的にアクセスできるようにする。
hostファイルを一時修正
1 .メモ帳から「管理者権限」で起動。
2 . ファイルの「開く」をクリックして、ファイル名(N): に「 C:\Windows\System32\drivers\etc\hosts 」を入力して「開く」をクリック。
hosts ファイルが開くので、一番下に、移転先サーバー( mixhost )の IP アドレスとサイトのドメイン名を追加して上書き保存。
- IP アドレス + 半角スペース + ドメイン名 を追加する。
これで、mixhost の WordPress サイトにログインできるようになった。
※ IP アドレスの前にコメントアウトの # を記入して上書き保存すると、追加記入した部分を削除しなくても、移転先サーバーから移転元サーバーへ表示を切り替えることが可能。
移転先へAll-in-One WP Migrationでデータをインポート
hosts ファイルを修正して移転先の mixhost の WordPress サイトにログインできるようになったので、All-in-One WP Migration をインストールしてデータをインポートする。
30 分程でインポートが終了して、サイトのデータの移転は完了。
これで、サイト移転が完了。
お名前comのネームサーバーを変更
WordPress サイトの移転が完了したので、ネームサーバーの設定を変更する。
ネームサーバーの設定変更の前に、必ずサイトの表示、プラグインの動作確認や移転の際に削除をしたプラグインを元に戻す作業をして、さらに修正した hosts ファイルを必ず元に戻しておく。
『 お名前 com のネームサーバー変更方法 』は ⇒ こちら
ネームサーバーの変更から浸透まで 72 時間ほどかかるので、エックスサーバーにも移転元サイトを残して約3日ほど放置すれば、認証エラーで非表示になる時間が無くサイト移転が完了。