WPblogのブログを強制SSLにする方法

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」を編集できるプラグインをインストールします。

WP Config File Editor
Modify WordPress wp-config.php file values using a Simple Form. Additionally, it now support modifying wide System parameters

「Raw Editing」を選択し、次のコードを「<?php」よりもあとの上の方に追加して保存します。「masshiro.blog」の部分は自身のアドレスへ変更してください。

$_SERVER['HTTPS'] = 'on';
$_ENV['HTTPS'] = 'on';
define( 'WP_HOME', 'https://masshiro.blog' );
define( 'WP_SITEURL', 'https://masshiro.blog' );

WP Config File Editor

非SSLのアクセスをSSLへ転送する

次に非SSLのアクセスをSSLへ転送するためのHTTPヘッダを追加するために.htaccessを編集します。WordPress管理画面から.htaccessを編集できるプラグインをインストールします。

WP Htaccess Editor
Simple editor htaccess file without using FTP client.

初期値は次のとおりになっています。

.htaccess 初期値

これに、ヘッダを追加するコードを追加します。IE10以上でHTTPアクセスがHTTPSへリダイレクトされます。なお、サーバー側でリダイレクトする(RewriteEngine)方法は無限ループに陥る可能性があるため使用しないことをおすすめします(WPblogは意外と仕様変更が多いです)。

追記:有効期限を1時間=3600秒に短く変更しました。もしWPblogが仕様変更しSSLが使用できなくなったときのための対策です。

Header set Strict-Transport-Security "max-age=3600; preload"

追加した.htaccess

広告 (下に続く)

うまく表示できない場合

プラグインの相性などによってはうまく表示ができない(HTTPで参照される)ことがあります。その時はページ表示時に置換をしてくれるプラグインを使用します。

Real-Time Find and Replace
Set up find and replace rules that are executed AFTER a page is generated by WordPress, but BEFORE it is sent to a user's browser.

このように指定すると確実です。

Real-Time Find and Replace 指定例

置換が適用されていない場合、このプラグインの優先順位をあげるために編集を行います。「real-time-find-and-replace.php」の最終行

add_action( 'template_redirect', 'far_template_redirect');

を次のように変更します。9999は場合によって変更してください。私の環境では初期状態では適用されず、1で適用されました。

add_action( 'template_redirect', 'far_template_redirect' ,9999);

シェアする