目次

この記事の目次です。

1. 常時SSL化とは
2. .htaccessの常時SSL化の設定例
3. WordPressの常時SSL化
4. 常時SSL化のチェックツール

更新履歴

1. 常時SSL化とは

常時SSL化とは、ホームページ全体を常にhttps(http通信を暗号化した通信)で表示することをを言います。 お問合せフォームや決済ページだけでなくホームページ全体、またhttpでの表示は行わない、ようにします。

2. .htaccessの常時SSL化の設定例

SSLサーバ証明書を申し込んで、レンタルサーバーでSSLが有効になっただけでは常時SSL化になりません。 httpでアクセスしてもhttpsで表示するようにします。 以下は.htaccessの常時SSL化の設定例です。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://htaccess-support.com/$1 [R=301,L]
</IfModule>

<ifModule mod_headers.c>
Header add Strict-Transport-Security "max-age=15768000"
</ifModule>

「IfModule mod_rewrite.c」のところは301リダイレクトの記述になります。 「HTTPS」が「off」の時にリダイレクトする記述になります。 「htaccess-support.com」の部分はご利用のドメインに置換える必要があります。 ドメイン部分は「%{HTTP_HOST}」と記述することもできますが、URLが統一されない要因が増えてしまいますので、ドメイン名をそのままの書き方にしています。

リダイレクトの記述だけでは、httpやドメイン名でアクセスした場合にhttpで表示する動作が発生して、その際に改ざんなどの問題が懸念されますので、「Strict-Transport-Security」を設定しておきます。

上記だけですとURLが統一されず、検索エンジンの重複コンテンツの問題やアクセス解析の集計の手間が発生する場合があります。 wwwなし、wwwありも考慮に入れて、セットでリダイレクトしておくことをお勧めいたします。

wwwなしでhttpsに統一

wwwなしでhttpsに統一する例です。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.htaccess-support\.com
RewriteRule ^(.*)$ https://htaccess-support.com/$1 [R=301,L]

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://htaccess-support.com/$1 [R=301,L]
</IfModule>

<ifModule mod_headers.c>
Header add Strict-Transport-Security "max-age=15768000"
</ifModule>

wwwありでhttpsに統一

wwwありでhttpsに統一する例です。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^htaccess-support\.com
RewriteRule ^(.*)$ https://www.htaccess-support.com/$1 [R=301,L]

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.htaccess-support.com/$1 [R=301,L]
</IfModule>

<ifModule mod_headers.c>
Header add Strict-Transport-Security "max-age=15768000"
</ifModule>

Strict-Transport-Security

httpからhttpsにリダイレクトする設定を行っても、訪問者はリダイレクトされる前にhttpでサイトと通信します。 「Strict-Transport-Security」をレスポンスヘッダに設定することで Webサイトにアクセスすると、以降の指定された期間、当該サイトには全てHTTPSによって接続するようブラウザに指示が行えます。

.htaccessでの設定例は以下です。

<ifModule mod_headers.c>
Header add Strict-Transport-Security "max-age=15768000"
</ifModule>

3. WordPressの常時SSL化

SSLサーバ証明書を申し込んでレンタルサーバーでSSLを有効にして、.htaccessで常時SSL化の記述をしただけでは、問題が発生する場合があります。 HTMLやPHPなどコンテンツのコードもhttpsのURLに対応する必要があります。 対応しないとブラウザによっては警告表示が出てしまいます。 ここではWordPressで作成したホームページのコンテンツ部分の対応について記載します。

WordPressのダッシュボード(管理画面)のURL設定

WordPressのダッシュボード(管理画面)でベースとなるURLを「https://」から始まるURLに変更します。

WordPressのダッシュボード(管理画面)のURL設定

WordPressの投稿や固定ページなどに含まれるURL

WordPressの投稿や固定ページなどに含まれるURLも変更しておきます。 ダッシュボードから手入力するのは大変ですが、Search-Replace-DB-masterなどのデータベース置き換えツールを活用する方法もあります。

Search-Replace-DB-master

Search-Replace-DB-masterは、https://interconnectit.com/products/search-and-replace-for-wordpress-databases/よりダウンロードできます。

準備

DBの接続情報が書き換えられ改ざんされてしまう恐れがありますので、作業端末が利用しているグローバルIP(本サイト左もしくは下で確認できます)でIP制限を設定します。

.htaccessでIPによるアクセス制限も行えます。 Apache 2.4からはRequireディレクティブを使用します。

Apache 2.2
order deny,allow
deny from all
allow from <許可するIPアドレス>
Apache 2.4
Require all denied
Require ip <許可するIPアドレス>
配置

Search-Replace-DB-master.zipを解凍し、WordPress配置先の上位パスに解凍してできたSearch-Replace-DB-masterを配置します。

実施
後始末が非常に重要

必ず移行ツールは削除します。DBの接続情報が書き換えられ改ざんされてしまう恐れがありますので、残ると非常に危険です。

$rm -Rf Search-Replace-DB-master

WordPressのテーマに記述されたURLもチェックする

WordPressのテーマに記述されたURLもチェックしておきましょう、外部から取り込んでいるCSSやJS、画像、ifremeで表示しているサイトのURLが「http://~」となっていると、表示されなかったり、機能しなくなったり、ブラウザによっては警告表示が出ます。

4. 常時SSL化のチェックツール

SSLのチェックは、無料のオンラインサービスでチェックが行えます。

Qualys SSL Labs

チェックツールとしては、Qualys SSL Labsが有名です。 Qualys SSL Labsは、インターネット上のSSL Webサーバの設定を詳細に分析して、採点とレポートを表示してくれます。
URL)https://www.ssllabs.com/ssltest/index.html

Qualys SSL LabsのA+評価イメージ

A+評価になることを確認できれば安心です。

レンタルサーバーでA+にならない場合

本記事で記載した常時SSL化の内容を行って、A+評価にならない場合は、レンタルサーバーのソフトウェアが古かったり、設定に問題があります。 その場合は、SSL以外にもいろいろと問題が潜んでいる可能性が高いですので、レンタルサーバーの窓口にお問合せて解消してもらうか、別のレンタルサーバーへ引っ越しするなど検討が必要と思います。

更新履歴

更新履歴になります。

位置:トップ常時SSL化