遅ればせながら WordPress で運用しているこのブログを https 対応しました。
常時 SSL が常識となったこのご時世。なかなか時間が無い・・・を言い訳に対応を後回しにし続けてきましたが、常時 SSL 化することによるメリットが大きくなったことや、仮にも Web に関わる仕事をしている人間が SSL 非対応ブログを公開し続けてるのもいかがなものか!と自分に言い聞かせて(そんな大したことじゃない)、ようやく重い腰を上げました。
というわけで、http から https に移行するためにやった作業をざっくりですがまとめておきたいと思います。
SSL 証明書について
SSL 証明書には、以前も試したことがある Let’s Encrypt を使いました。
https://blog.ko31.com/201604/letsencrypt/
ちなみに上の記事を書いた当時と違って、今はクライアントツールの名前が 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 コマンドを使うと、標準のテーブルに対する一括置換はもちろん、マルチサイトのテーブルやカスタマイズで追加した独自テーブルに対する変換もしてくれるので、これ一発でやりたい事が済んでしまいます。
https://blog.ko31.com/201511/wp-search-replace-network/
今回このブログの場合は、こんな感じでコマンドを実行しました。あっという間に URL 文字列の変換が完了です。
wp search-replace 'https://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>
SSLの動作チェック
SSL 証明書が正しくインストールされているか、外部のチェックサービスを使って確認しておきます。
今回は DigiCert が提供しているこちらのページで試してみました。
このような画面が出るので、サーバのアドレスを入れて「CHECK SERVER」ボタンをクリックします。
チェックの結果が出ました。とりあえず SSL は正常に動作していそうですね。
おわりに
うちのブログの場合、以上のような作業で https 対応を行いました。
ただし実は、外部サービスを利用している場合は Analytics や Search Console の設定を変更したり、SNS のカウント件数を引き継ぐ調整をしたりと、この他にも細かい作業が色々残っていたりします。(面倒になって SNS はあきらめた笑)
やってみると意外と作業が大変だったり、必ずしもメリットだけではなかったりすることはありますが、常時 SSL 化はもう必然の流れでしょうから、自分の持っている他のサイトも時間を見つけてぼちぼち対応を進めていきたいなと思ってます。