2016.1.27

WordPressサイトを常時SSL化する方法(全ページHTTPS)

WordPress-ssl

前回Webサイトを常時SSL化させるメリットについて書きました。

以前の投稿記事
Webサイトの常時SSL化はメリットがたくさん!やらない手はない

今回はサイトを常時SSL化する方法について書いてみます。

WEBサイトを常時SSLにする方法

タイトルではWordPressと題しておりますが、一般のサイトでも共通して言えることも多くあります。

一般的なSSL化実装は以下のような流れになるかと思います。

SSL化実装の主な流れ

  1. ① Apache、nginxなどのWebサーバーをインストール
  2. ② サーバーにSSL/TLS化ソフトをインストール
  3. ③ サーバー証明書、中間証明書を設置
  4. ④ Webサーバーを再起動
  5. ⑤ サイトのリダイレクト設定
  6. 完了

主にはサーバー側の設定になるので、ご利用のサーバーに合った証明書を取得し設置してください。

サーバー証明書取得について

こちらについては、お使いのサーバーによって取得できる証明書が決まっていたりもします。

出来る限り、信頼のできる認証局からの証明書を取得するようにしましょう。

また有効期限についても注意しておくようにしましょう。

※もうすでにどこの証明書もSHA1ではなく、SHA2になっているかと思いますが、この点も注意してください。

常時SSL化されたサイトを作るにあたっての注意点

WordPressに限らず、SSL化したサイトを作るにあたっては以下のことを意識して作成します。

1、画像・CSS・JSなどはSSL領域から読み込む

実際にSSLを導入した後に、既存の読込ファイルパスが以下のようになっている場合があります。

<img src="http://www.example.com/images/sample.jpg" />

この場合、httpsではなく、httpで読み込んでいるため、ブラウザでエラー表示がでてしまいます。

以下Firefoxの例です。

安全ではありません

パスの書き方については、相対パス「../」、ルートパス「/」、それとhttp://を除いた絶対パスの書き方「//」などがあります。

「http://◯◯」とした書き方で読み込んでいるとエラーになってしまうので、すべて「https://◯◯」や相対パス、ルートパス等に書き換える必要があります。

これはHTMLに限らず、CSS、JSの個別ファイル内も同様です。

1つでも信頼のできない先からの読込がある場合エラーが出てしまうので注意してください。

WordPressの場合

WordPressなどで、途中からSSLを導入する場合、
設定画面のサイトURLが「http://」から始まる形になっているかと思います。

その場合、記事投稿時のメディア挿入パスが「http://」から始まる絶対パスになっています。

そうするとSSL接続時に、ブラウザでエラー表示が出てしまうため、「https://」に書き換える必要があります。

まずは「設定」→「一般」と進み、URLの部分で「http://〜」となっている箇所を「https://〜」と変更しましょう。

 

meWordPress

次に過去投稿を編集し直します。

WordPressの投稿記事内を書き換える

次に、過去投稿した中にある「http://」から始まる読込を、すべて「https://〜」に変更します。

これについては、WordPressのデータベースを書き換える、もしくは記事を一つひとつ修正しなければいけません。

手作業で更新するのはあまりにもめんどくさかったりするので便利なプラグインを使いましょう。

Search Regex

参考サイト

上記プラグインを使用することで過去記事の文字列を一括置換えすることができます。

※データベースを一括置換えする場合は必ずバックアップをしておきましょう。

2、各種ビーコンタグもhttpsから読み込む

上記と同じですが、動画、ソーシャルボタン、Google Maps、アフィリエイトタグ、アクセス解析タグなどもhttpsから読み込むようにします。

3、httpsへのリダイレクト設定

証明書を設置して「https://〜」からアクセスできるようになったとしても、これまで通りに「http://〜」からもアクセスができてしまいます。

それでは意味が無いので、「.htaccess」などでhttpをhttpsへ転送する設定をする必要があります。

以下をWordPressサイトのルートディレクトリにある.htaccessに追記します。

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

これでhttpへのアクセスは、すべてhttpsへ転送されるようになります。

この際に元から書いてある設定と合わせて書かないようにしましょう。
一緒に書いてしまうと、パーマリンクの設定を書き換えた際に上書きされてしまいます。

また、お使いのサーバーによっては別の設定が必要だったり、書き方が異なったりします。

.htaccessに設定を書いたのに上手くリダイレクトされない場合

ちゃんとリダイレクト設定を書いたのにうまくリダイレクトされないといった場合、
上記設定を.htaccessのなるべく上部に書いてみるようにしましょう。

下部に書いてあると他の設定の影響を受けうまくリダイレクトされない場合があります。

テンプレートの設定

WordPressの場合、今利用しているテンプレートの調整が必要になる場合もあります。

こちらは利用しているテーマを確認し、調整が必要な場合は各自調整しましょう。