
SSL設定の手順を紹介(ワードプレス版)
ワードプレス版のSSL設定
今回はWordpressサイトにおけるSSL設定の手順です。
基本的な流れはHTMLサイト版とそれ程変わりはありませんし、Wordpressの方がプラグインが充実しているのでSSL化はしやすいと思います。
ただし、手元にあるファイルで更新ができるHTMLページのサイトと違い、Wordpressのデータはサーバー上に全て置いてあることが多いと思います。
Wordpressで作られてたクライアントのWEBサイトをSSL化するお仕事を受けた時などは、設定時にトラブルがあってはいけませんのできちんとバックアップを取っておきましょう。
事前準備(データのバックアップ)
まずWordpressのデータは最新にバージョンアップをしておきましょう。プラグインやテーマなどは最新のものに更新をしておきましょうね。
WordPressのプログラムファイル一式(wp-content/内)をFTPでダウンロードしておき、データベースについてはphpMyAdminや「BackWPup」等のプラグインを使ってsqlファイル(又はzipファイル)をエクスポートしておきます。
BackWPupによるバックアップ
注意するべき点
常時SSL化をするという事はWebサイトのURLがhttp:からhttps:へと変わるので、SNSでのシェア数は一旦リセットされ、ゼロからのスタートになります(urlに対してカウントされるものだからです)。
SNSのシェアボタンを表示するプラグインなどを利用している場合も同様ですので注意くださいね。
https通信への変更
Wordpressの管理画面より「設定」から「一般」へ進み、表示させているアドレス(2段に表示しているURLの部分)をhttps:へ変更します。
再度ログイン画面が表示される場合はもう一度ログインをし直しましょう。
https:にてサイトが表示される事を確認します。この段階では、Google Chromeのアドレスバーは鍵マークが出ているページとエクスクラメーションマークが出ているページとがあると思います。
エクスクラメーションマークが出ているページはSSL化が不十分である事を示していますので、必要箇所を修正する必要がありますね。
記載がある絶対パスURLを全て変更
基本的に絶対パスがhttp:で記載してある箇所
aタグ…リンクパス
linkタグ…CSSファイルなど
imgタグ…画像パス
scriptタグ…Javascriptの外部ファイル
CSSスタイルbackground-imageのurl… 画像パス
などは全て変更をしておきましょう。相対パスおよびサイトルート相対パスは変更の必要はありません。
テーマを構成している各phpファイルにおいて、パスの記述が「http://」になっている箇所は全て「https://」に修正をします。
外部から読込しているリソースやプラグインはhttps:に対応しているかどうかを確認しておき、調整が必要な場合は事前に実施しておきます。
プラグイン「Really Simple SSL」
常時SSL化のプラグインにはいくつかありますが、一番シンプルな「Really Simple SSL」をインストールして、プラグインを有効化しましょう。
有効化後に表示されるページで「はい、SSLを有効化します」ボタンをクリックします。すると完了メッセージが表示されます。
有効化後のReally Simple SSL完了画面
本プラグインを削除してしまうと、同時にSSLも解除されますのでご注意ください。
またWEBサイトのドキュメントルートがTOPではなく固定ディレクトリの場合、本プラグインの有効化後はデータの整合性が取れなくなる可能性がありますので、http:での管理画面にはログインしないで下さいね。
先ほどと同様にGoogle Chromeで全ページが鍵マークになっているかどうかを確認して、問題なければSSL化は終了です。
SSL化ができない(鍵マークがつかない)場合の対処
ブラウザのアドレスバーの左端が以前として鍵マークになっていない場合は、エラーの原因確認と対処をおこなわなければなりません。
よくあるエラーの原因がプラグインなどですね。そのプラグインをOFFにするとSSL化が正常になる場合があります。
その場合はその利用中のプラグイン自体がhttps:に対応していない可能性があります。そうなりますと同程度の機能を持つ他プラグインに差し替えすることも検討が必要です。
一括変換プラグインを利用
それから、投稿や固定ページなどの記事ソース内に含まれる内部リンクや画像パスなどは、紹介したプラグインだけでは対応できない場合があります。各記事に記述された全てのパスの書き換えが別途必要な場合があります。
記事が膨大に入っている場合は手作業では非常に大変ですよね。
そこで「Search Regex」などの一括変換プラグインなどを利用する事をおすすめします。対象箇所となる絶対パスを一括でhttps;へ変更してくれます。
Search Regex
htaccessリダイレクトによるhttps:への一本化
html版でもお話しましたが、WEBサイトを常時SSL化しても、一般ユーザーはそのことを知りません。ブラウザのブックマークに登録されたURLもおそらく「http://」のままになっています。
さらにGoogle検索も「http://」のURLをインデックスしたままになっています。
このままだとユーザーやGoogleがWEBサイトにアクセスした際に「ページが見つかりません」のような画面が表示されますので、サイトが無くなったと勘違いしてしまう可能性があります。
ですのでユーザーおよびGoogleクローラーをhttps:へスムーズに誘導する必要があります。
.htaccessリダイレクト(転送設定)
これはhtml版でも紹介した通りです。Googleも推奨している方法で、.htaccessファイルを設置してhttp:での表示を強制的にhttps:での通信に飛ばす設定です。これがリダイレクトと呼ばれるものです。
記述例
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
サブディレクトリにも「.htaccess」ファイルが存在する場合は、それにも上記の記述+下記一文を間に入れて、念のため追加しておいてください。
RewriteRule ^(.*)$ https://(ドメイン名)/(サブディレクトリ名)/$1 [R=301,L]
Googleに対しての対処法
canonicalタグの変更
SSL化する前からcanonicalタグを導入していた場合は「https://~」のURLに変更しておきましょう。それをしないとGoogleはhttps:をインデックスしてくれません。
robots.txtの設定
例えば前から共用SSLでWebサイトの一部にhttpsを利用しており、セキュリティ面を考慮してインデックスさせない目的から「robots.txt」でhttps:のデータが入ったディレクトリ全体をブロックしている、というケースもあると思います。
ここはhttps:設定時にブロックを解除しておきましょう。
あわせて読みたい関連記事
htaccessリダイレクトをカバーする技術「HSTS」
上記のhttp:での通信をhttps:通信に飛ばすリダイレクトは、当たり前ではありますが.htaccessファイルがある限り常時おこなわれます。
みなさんここで一つ考えてみて下さい。https:での表示になったからと言ってユーザーがお気に入り登録したURLをわざわざhttps:に登録しなおすでしょうか?
おそらくそれはしないと思います。リダイレクトが掛かり続けている訳ですからユーザーがそれ気に留めるとは思えません。
ですのでこのリダイレクト設定はずっとしておかなければならないのです。
HSTSについて
細かいお話になりますが、それはつまり毎回毎回、http:で通信をした際にhttps:通信へ切り替わる「一瞬の間」、セキュリティがされていない事を意味しているのです。
それに対応するのがHSTSです。
HSTSについては別記事にて説明させて頂きます。