WordPressブログをhttpからhttpsに移行するためにやったこと

守る

遅ればせながら WordPress で運用しているこのブログを https 対応しました。

常時 SSL が常識となったこのご時世。なかなか時間が無い・・・を言い訳に対応を後回しにし続けてきましたが、常時 SSL 化することによるメリットが大きくなったことや、仮にも Web に関わる仕事をしている人間が SSL 非対応ブログを公開し続けてるのもいかがなものか!と自分に言い聞かせて(そんな大したことじゃない)、ようやく重い腰を上げました。

というわけで、http から https に移行するためにやった作業をざっくりですがまとめておきたいと思います。

SSL 証明書について

Let's Encrypt

SSL 証明書には、以前も試したことがある Let’s Encrypt を使いました。

ちょっとした SSL 対応のサイトを用意したい事案が発生したので、今まで気になっていたけどよく知らなかった Let's Encryp...

ちなみに上の記事を書いた当時と違って、今はクライアントツールの名前が Certbot に変わっていました。情報の賞味期限は早いですねえ。。

このブログはさくら VPS 上で稼働させているんですが、Let’s Encrypt の導入する際にいくつかつまづきポイントがあります。自分はこの辺の記事を参考にしながら作業を進めました。ありがとうございます。

参考 Let’s Encryptを用いてさくらVPSをHTTPS対応させる – Qiita

参考 さくらのVPS(Cent OS6.8)でLet’s Encryptを自動更新する方法 – Qiita

WordPressのhttps対応について

次に WordPress 側で https に変更するためにやったことです。

サイトのバックアップ

何はともあれ、万が一のトラブルに備えて作業前には必ずバックアップは取っておきましょう!

このブログでは BackWPup というプラグインで定期的にバックアップは保存されるようにしてますが、今回作業する前に念のため自分でも、

  • WordPress ディレクトリ一式のコピー
  • DB のバックアップ(mysqldump コマンドでエクスポート)

をバックアップとして取得しておきました。

一般設定でURLを変更する

WordPress 管理画面から「一般」>「設定」を開き、下記の2項目をそれぞれ http から https に変更します。

  • WordPress アドレス(URL)
  • サイトアドレス(URL)

一般設定

DBに含まれるURLの一括置換

DB のデータに含まれる URL 文字列をすべて「http」から「https」に変換します。

データの一括変換と言えば、とにかく便利なのが WP-CLI 。

以前下記の記事でも紹介しましたが、WP-CLI の wp search-replace コマンドを使うと、標準のテーブルに対する一括置換はもちろん、マルチサイトのテーブルやカスタマイズで追加した独自テーブルに対する変換もしてくれるので、これ一発でやりたい事が済んでしまいます。

WordPress の DB を別サイトに移行する時に WP-CLI の「wp search-replace」コマンドでデータ変換す...

今回このブログの場合は、こんな感じでコマンドを実行しました。あっという間に URL 文字列の変換が完了です。

wp search-replace 'http://blog.ko31.com' 'https://blog.ko31.com'

.htaccessにリダイレクト処理を追加

http の URL でアクセスがあった場合に、自動的に https のページが表示されるよう .htaccess に下記のようなリダイレクトの設定を追加します。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
上記のリダイレクト設定は、「# BEGIN WordPress 〜 # END WordPress」という WordPress で自動設定される記述とは分けて、上の位置に追記しておくのが良いと思います。

SSLの動作チェック

SSL 証明書が正しくインストールされているか、外部のチェックサービスを使って確認しておきます。

今回は DigiCert が提供しているこちらのページで試してみました。

このような画面が出るので、サーバのアドレスを入れて「CHECK SERVER」ボタンをクリックします。

SSLチェッカー

チェックの結果が出ました。とりあえず SSL は正常に動作していそうですね。

SSLチェッカー

おわりに

うちのブログの場合、以上のような作業で https 対応を行いました。

ただし実は、外部サービスを利用している場合は Analytics や Search Console の設定を変更したり、SNS のカウント件数を引き継ぐ調整をしたりと、この他にも細かい作業が色々残っていたりします。(面倒になって SNS はあきらめた笑)

やってみると意外と作業が大変だったり、必ずしもメリットだけではなかったりすることはありますが、常時 SSL 化はもう必然の流れでしょうから、自分の持っている他のサイトも時間を見つけてぼちぼち対応を進めていきたいなと思ってます。

PHPが好きなWeb系エンジニアです。フリーランスでWebサイト制作やWordPressのカスタマイズ、システム開発等を雑多にこなしています。バンカラ応援好きの振り飛車党。 高校野球 / 将棋 / WordPress / ブログ / 食べること / 二児の父親 >>詳しいプロフィールはこちら



シェアする

フォローする