常時SSL通信(常時HTTPS通信)とは?

皆さん、サイトへのSSLの導入は完了しているでしょうか?

サーバへインストールまでは完了しているが、まだ、常時SSL通信の設定は完了していない。。。
といったことはありませんか?

もし、
http://~
にもアクセス出来てしまう状態になっている場合には、
単にSSLの導入が完了しているだけで、
Googleが推奨している常時SSL通信にはなっていないです

http://~
へのアクセスは、
SSL通信を行っていなので、SSL導入の意味が無くなってしまいますし、
URLが分散してしまうので、SEO的にも良くないので、
注意して下さい。

必ず、
http://~
へのアクセスは、
https://~
へ強制的にアクセスさせるようにして、常にSSL通信を行うように設定しておくようにしましょう。

それでは、
今回は、強制的にHTTPSにリダイレクトさせて、常にSSL通信させるための設定方法(常時SSL通信設定)についてまとめておきます。

常時SSL通信の設定方法

設定方法は、
Apacheの設定ファイルであるhttpd.confで設定する方法

.htaccessを使って設定する方法などいくつかありますが、
「httpd.conf」の設定は上級者向けになるので、
今回は.htaccessを使った方法を紹介します。

.htaccessを使ったHTTPSへのリダイレクト設定

.htaccessに、以下の記述を追加するだけです。

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

もし、.htaccessがホームページの公開ディレクトリになければ、
新規に作成してアップロードして下さい。

アップロードが完了したら、必ず、各ページにアクセスして、
HTTPからHTTPSへリダイレクトされることを確認して下さい。

ただ、こちらの設定は新規のサイト向けになり、
既存サイトを常時SSL通信させる場合には301リダイレクト設定が必要になります

その方法は、以下で詳細を説明します。

.htaccessを使った301リダイレクト設定

まず、既存サイトを常時SSL通信させる場合には、
当然、http://~からhttps://~へURLが変わってしまうことになります。

この場合、上記の設定方法だと以前の評価を引き継げないので、勿体ないです。

必ず、301リダイレクトで転送させることをおすすめします

と言っても、上記で説明した記述内容を以下の様に変更するだけです。

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

WordPressを使っている場合の設定

WordPressを使っている場合でも、.htaccessを利用して設定できますが、
プラグインを利用した方法もあります。

検索すると、関連するプラグインは多く出てきますが、
私のおすすめは、Really Simple SSLWP Force SSLです。

プラグインをあまり使いたくないという方も多いので、
.htaccessで設定するのか、プラグインで設定するのかは、各自で判断して頂ければと思います。

常時SSL通信の注意点

常時SSL通信の設定は必須ですが、注意しておかないといけない点もあります。

画像やCSS、Javascriptの外部ファイルの読み込み設定を、パスではなくURLで行っていた場合、
そのURLがhttp://~になっていると、
HTTPS通信時には、読み込めなくなります。

昔組んだサイトで良くあるのが、
jQueryをCDNにキャッシュされたサーバから読み込んでいる場合です。

例えば、

です。

こちらは、
必ず

に読み替えておく必要があります。

jQueryを正常に読み込めていないと、サイトが正常に動作しなくなるので、必ず注意して下さい。

他にも、発生する問題はありますが、
大体の場合には、Googleで検索すれば解決方法が見つかるので、
頑張って挑戦してみて下さい。