常時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に、以下の記述を追加するだけです。
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
もし、.htaccessがホームページの公開ディレクトリになければ、
新規に作成してアップロードして下さい。
アップロードが完了したら、必ず、各ページにアクセスして、
HTTPからHTTPSへリダイレクトされることを確認して下さい。
ただ、こちらの設定は新規のサイト向けになり、
既存サイトを常時SSL通信させる場合には301リダイレクト設定が必要になります。
その方法は、以下で詳細を説明します。
.htaccessを使った301リダイレクト設定
まず、既存サイトを常時SSL通信させる場合には、
当然、http://~からhttps://~へURLが変わってしまうことになります。
この場合、上記の設定方法だと以前の評価を引き継げないので、勿体ないです。
必ず、301リダイレクトで転送させることをおすすめします。
と言っても、上記で説明した記述内容を以下の様に変更するだけです。
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
WordPressを使っている場合の設定
WordPressを使っている場合でも、.htaccessを利用して設定できますが、
プラグインを利用した方法もあります。
検索すると、関連するプラグインは多く出てきますが、
私のおすすめは、Really Simple SSLかWP Force SSLです。
プラグインをあまり使いたくないという方も多いので、
.htaccessで設定するのか、プラグインで設定するのかは、各自で判断して頂ければと思います。
常時SSL通信の注意点
常時SSL通信の設定は必須ですが、注意しておかないといけない点もあります。
画像やCSS、Javascriptの外部ファイルの読み込み設定を、パスではなくURLで行っていた場合、
そのURLがhttp://~になっていると、
HTTPS通信時には、読み込めなくなります。
昔組んだサイトで良くあるのが、
jQueryをCDNにキャッシュされたサーバから読み込んでいる場合です。
例えば、
です。
こちらは、
必ず
に読み替えておく必要があります。
jQueryを正常に読み込めていないと、サイトが正常に動作しなくなるので、必ず注意して下さい。
他にも、発生する問題はありますが、
大体の場合には、Googleで検索すれば解決方法が見つかるので、
頑張って挑戦してみて下さい。