第2回の概要

WordPressサイト運用のコツということでお届けしている本連載ですが、第2回はSSLについて解説いたします。最近、Chromeブラウザで非SSLサイトの警告が強化されたり、デジサート証明書の大量失効等が起きたりと良くも悪くも話題になることが多いSSL。サイトを運営する上で切っても切れない機能になっているのも事実です。WordPressとレンタルサーバとSSLという組み合わせで気をつけること、設定の基本などをご紹介いたします!

SSL設定の基本

さくらインターネットではさくらのSSLというSSL証明書の販売サイトを運営しています。SSLにまつわるコラムなどもありますので、SSL初心者の方はぜひご覧ください。

さて、WordPressでSSLサイトを運営する場合の注意点をいくつか挙げてみます。

  • SSL設定
  • サイトURLの設定
  • リダイレクト設定

順をおってみていきましょう。

SSL設定

まず、SSL(https)サイトを作る、もしくはhttpで運用しているサイトをhttps化する場合はレンタルサーバでSSLの設定が必要になります。さくらのレンタルサーバでは、無料SSL機能が用意されており、ワンクリックでサイトのSSL通信が開通しますのでご利用ください。よくある質問やドメインをSSL化する手順などはサポートサイトをご覧ください。
また、有料のSSL証明書も1年972円(税込)と手頃な価格で提供しています。こちらもレンタルサーバコントロールパネルから購入手続きをすると面倒な認証や証明書、中間証明書の設定などを全て自動でできるようになっています。導入の流れはサポートサイトをご覧ください。

SSLの設定が終わったら、Webブラウザで https://(自分のドメイン) にアクセスしてみましょう。サイトの表示が壊れているかもしれませんが、SSLがきちんと設定されていれば証明書エラーが出ずに設定された証明書情報が見られるはずです。このように完全には保護されていません。と表示されますが、証明書は(有効)と表示される状態です。これから設定を変更してCSSや画像のURLもhttps://〜に変われば、保護されていますに変わります。

COMMON NAME INVALIDなどのエラーがでてサイトが何も見えない場合は証明書のインストールやレンタルサーバ設定に失敗しています。レンタルサーバのドメイン/SSL設定などを見直してみましょう。

サイトURLの設定変更

最初からhttpsのURLでサイトを立ち上げた人には必要ありませんが、すでにhttpのURLでサイトを運用している方はサイトURLの変更が必要です。さくらのレンタルサーバではこのあたりの設定を自動でやってしまう常時SSL化プラグインを用意しています。クイックインストールでWordPressを入れている場合はプリインストールされていますので、サポートサイトを参考に利用を検討してみてください。

SSL設定のステップで https://〜 のURLでアクセスできるようになっていれば、プラグインでSSL化を行うことでリダイレクトなどの設定を自動で行なえます。

しかし、プラグインを用いてもURLが置換できない場合があります。WordPressのプラグインやテーマ、ウィジェットなどでサイトURLを直接http://example.comのように記述している場合、手動で全部置換していく必要がありますのでご注意ください。ターミナルからSSHでログインできる方は、当該フォルダ内のURLをコマンドで全置換したり、データベースに入っているURLをphpMyAdminで置換したりすることもできます。

このようにWordPressの場合、様々な箇所に様々な書き方でサイトURLを書けるため、設定変更漏れが発生する可能性がとても高くなります。以下のポイントを順にチェックして漏れがないようにしましょう。

  • 管理画面の設定→一般にあるURL2箇所
  • 投稿の中で設定している自サイトへのリンクや画像URL
  • 外観→ウィジェットにあるウィジェット内の画像URLなど
  • プラグインなどに設定されたURL
  • テーマファイル内に直接記述されたURL

多いように見えますが、WordPressで自サイトのURLが記述されるのは構成ファイルかデータベースのどちらかになります。ターミナルからSSHで接続し、対象フォルダで

grep "http://example.com" -rl ./

とすることで古いURLが書かれたファイル名を表示することができます。黒い画面は怖いかもしれませんが、検索するだけならデータは消えませんのでご安心ください。ファイルが表示されたら、慣れている方はそのままエディタ(viなど)で編集できますし、慣れていない方はFTPなどで接続してダウンロードして手元のPCで編集ということもできます。

MySQLデータベースを直接検索する場合は、phpMyAdminへログインして対象データベースを選択し、検索ボタンを押して検索します。

検索でヒットした値はphpMyAdminから修正しても良いですし、それぞれのプラグインなどから修正することも可能です。設定箇所を探すのは面倒な事が多く、phpMyAdminで直してしまう方が効率的です。phpMyAdminはデータベース値を直接操作するアプリケーションです。違うところを編集したりデータベースをドロップしてしまったりするとサイトが消えてしまいますので、作業前にはバックアップ&ステージング機能などを使ってデータベースのバックアップも取得しておくことをおすすめします。バックアップ&ステージング機能の使い方は、同じさくらのナレッジ内記事(さくらのレンタルサーバ バックアップ&ステージング機能完全攻略)をご覧ください。

リダイレクト設定

サイトの常時SSL化の一番のキモになるのはリダイレクトです。最近レンタルサーバのお客様でも証明書のインストールだけは成功してサイトにhttps://〜でアクセスできるのにリダイレクトが設定されておらずGoogle検索結果からはhttp://〜の方へアクセスしてしまうというサイトが非常に多くなっています。リダイレクト設定を行うことでhttp://〜へアクセスしてきたお客さんを https://〜のURLへ転送することができます。

自分のサイトは最初からhttpsだからリダイレクトしなくてもいいやと思うかもしれませんが、httpとhttpsの両方が接続可能だと何かの拍子にGoogleに非SSLのURLが拾われてしまうかもしれません。ぜひともリダイレクト設定を行いましょう。

リダイレクト設定は常時SSL化作業の最後に行います。サイトがhttpsでつながらない状態でリダイレクトを行ってしまうとサイトにアクセスできなくなりますのでご注意ください。リダイレクトは、.htaccessというファイルを使います。ここでは一例として記載方法をご紹介しますが、環境によっては正常に動かない場合もありますのでご了承ください。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

この設定を入れることでhttpでのアクセスをhttpsにリダイレクトすることができます。

ちょっと本題から離れますが、さくらのレンタルサーバはSSL設定に難があり、上記設定ではうまく動かずX_SAKURA_FORWARDED_FORというオリジナルの環境変数を利用しないといけないと言われてきました。しかし2018年2月より実施したレンタルサーバ構成変更により、一般的なサイトと同様に環境変数HTTPSが使えるようになりました。これまで通りオリジナル環境変数も利用できますので、どちらの方法でもリダイレクトが可能です。

もちろん、これまで通りさくらのレンタルサーバ常時SSL化プラグインを使用することもできます。

さて、リダイレクトが完了したら外部からのアクセスは徐々に直接httpsへ行くようになります。これはGoogleに登録されているURLが徐々に変わっていくためです。リダイレクトを設定していれば数週間でインデックスURLがhttpsになります。検索結果画面上のURLがhttps://〜になっていれば安心です。もしアクセス解析などに自サイトのURLを登録している場合は、こちらも設定を変更しておきましょう。Google Search Consoleもhttpとhttpsは別々のサイト扱いになるので、両方設定しておく必要があります。

Google Search Consoleは、普段の検索インデックスの確認だけではなくSSL証明書の失効などをメールでお知らせしてくれる便利な機能があります。マルウェア感染などもスキャンしていて非常に高機能、かつ無料ですのでサイト運営者の方はぜひ導入しておきましょう。

SSL化後のタスク

SSL化は一度やってしまえば終わりではありません。さくらのレンタルサーバ無料SSL機能を使っていれば更新は自動で行われますが、それ以外の証明書をご利用の場合は1年か2年に1回は証明書の更新が必要になります。さくらのSSLで証明書を購入された方には60日前と30日前にメールを送っていますので更新がもれないようにしましょう。

次回はさくらのレンタルサーバ上でWordPressのテーマやプラグインを使ってカスタマイズする際のコツをご紹介します。