WPblogではちょっと工夫するだけで簡単に全ページSSLにすることができます。その方法を紹介します。
条件
WPblogのオリジナルドメインを用いたサイト「.wpblog.jp」で終わっているブログ
(追記) PHP AAPS時代に登録したブログはコモンネームが「*.phpapps.jp」になっている場合があるそうです。その場合は検証エラーとなり使用できません。
プラグインでも可能
Really Simple SSLプラグインはこれから記載することを代理で行ってくれるプラグインです。面倒な場合はバックアップ後にこちらのプラグインのインストール有効化でもできると思います。
はじめに
WPblogではWPblog管理画面から設定を変更すれば、WordPress管理画面にて強制SSLにすることができます。実はこの機能は、wp-config.phpに「define('FORCE_SSL_LOGIN', true);
」と「define('FORCE_SSL_ADMIN', true);
」を設定しているだけです。つまり、どのページにおいてもHTTPSで接続すればSSL通信が利用できるということになります。
注意
FTPで.htaccessが編集できない都合上、.htaccessの編集に失敗すると一切サイトにアクセスができなくなります。必ず事前にデータベースとファイルすべてをバックアップしてください!
もし、サイトが正常に表示できなくなった場合は、WPblogの管理画面から「アプリケーションの初期化」をしたあと、バックアップファイルからリストアしてください。
この作業に伴ういかなる損失も責任を負いません。一度、目を通して行っていることがよくわからない場合は実行しないでください!また、この作業に関してネットオウル社に問い合わせすることは絶対におやめください。
WordPressにSSLであると認識させる
まずは、WordPress管理画面から「wp-config.php」を編集できるプラグインをインストールします。

「Raw Editing」を選択し、次のコードを「<?php
」よりもあとの上の方に追加して保存します。「masshiro.blog
」の部分は自身のアドレスへ変更してください。
$_SERVER['HTTPS'] = 'on'; $_ENV['HTTPS'] = 'on'; define( 'WP_HOME', 'https://masshiro.blog' ); define( 'WP_SITEURL', 'https://masshiro.blog' );
非SSLのアクセスをSSLへ転送する
次に非SSLのアクセスをSSLへ転送するためのHTTPヘッダを追加するために.htaccessを編集します。WordPress管理画面から.htaccessを編集できるプラグインをインストールします。

初期値は次のとおりになっています。
これに、ヘッダを追加するコードを追加します。IE10以上でHTTPアクセスがHTTPSへリダイレクトされます。なお、サーバー側でリダイレクトする(RewriteEngine)方法は無限ループに陥る可能性があるため使用しないことをおすすめします(WPblogは意外と仕様変更が多いです)。
追記:有効期限を1時間=3600秒に短く変更しました。もしWPblogが仕様変更しSSLが使用できなくなったときのための対策です。
Header set Strict-Transport-Security "max-age=3600; preload"
うまく表示できない場合
プラグインの相性などによってはうまく表示ができない(HTTPで参照される)ことがあります。その時はページ表示時に置換をしてくれるプラグインを使用します。

このように指定すると確実です。
置換が適用されていない場合、このプラグインの優先順位を下げるために編集を行います。「real-time-find-and-replace.php」の最終行
add_action( 'template_redirect', 'far_template_redirect');
を次のように変更します。9999は場合によって変更してください。私の環境では初期状態では適用されず、1で適用されました。
add_action( 'template_redirect', 'far_template_redirect' ,9999);
コメント