常時SSL

最終更新日時:2017-02-20 00:00:00
Web系

常時SSL とは、常に https による接続が可能であること、つまり全ページが https で参照することが可能なことを指します。

常時SSL にする理由


ズバリ、Google が推奨しているため、世の中的に爆発的に流行りだしたのだと思います。
Google 曰く、https で参照可能であることは「安全なページ」であるとみなすらしく、そのためページランキングにも影響が出てくることを明言しています。
つまり、SEO 対策の一環となります。

しかし、そもそも SSL 対応する意味としては、パケットを暗号化することによる通信の盗聴・改竄の防止、または、認証局によって証明されていることによるサイトのなりすましの防止といったものがあり、当然これらについても大きなメリットです。

逆にデメリットとしては、通信の複雑化による負荷の増加や、証明書を保守しないといけないので作業量(コスト)の増加などが考えられますが、たいていのサイトではこれらはほとんど問題にはならないと思います。
従って、特別な理由が無い限りは、常時SSL とすることはメリットの方が大きいと考えられます。

無料の証明書


あえてデメリットで証明書の取得に費用がかかることを明記しませんでしたが、現在では Let's Encrypt のような無料で取得可能な証明書が存在します。
従って、導入する手間は若干ありますが、基本的には無料で常時 SSL が実現できる時代となりました。
もちろん、認証局の信頼性を求めるのであれば有料のものを使用するべきですが、それほど信頼性が必要なケースでなければ無料のもので十分かと思います。
Let's Encrypt の導入方法については、Let's Encrypt を参照。


http アクセスについて


常時SSL は全ページが https でアクセス可能というだけの話なので、http アクセスについては特に意識されていないように思えます。
しかし、http と https 双方でアクセスできてしまうのは弊害がいろいろありますので、どうせなら http アクセスは全て https へリダイレクトさせてしまうのがベストではないかと思います。

リダイレクトさせてしまうだけなら簡単です。
Let's Encrypt ではインストール時に設定されますが、http な設定の方で、以下のような類の設定をすればOKです。

 RewriteEngine On
 RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,QSA,R=permanent]


これだけでも目的は達しているのですが、HSTS(HTTP Strict Transport Security) 設定を行っておくと万全かと思います。
HSTSとは、現在接続しているドメインに対するアクセスにおいて、次回以降 http ではなく、https を使うようにサーバ側からブラウザへ伝達する仕掛けです。
以下の設定を該当する https の VirtualHost 設定内に記載します。

 Header set Strict-Transport-Security "max-age=315360000"


サブドメインも含める際には以下のようになります。

 Header set Strict-Transport-Security "max-age=315360000; includeSubDomains"


上記の max-age は期限の設定で、315360000秒=1年です。

お問い合わせは 掲示板 にて。