SSLについて紐解く

今回は「SSL」について、わかりやすくお伝えしていきたいと思います。

SSLというアルファベット3文字を、サイトの運営、導入をお考えの方なら一度は耳にしたことがあるかもしれません。
このSSLというのは、「Secure Sockets Layer」というのが正式な名称で、インターネットを通したウェブブラウザとウェブサーバー間における通信を暗号化する仕組みのこと。簡単に言えば、セキュリティ関係の仕組みです。
現在インターネット上では住所や氏名、クレジットカード情報などが頻繁にやり取りされています。そうした個人情報を悪意あるハッカーなどから守ってくれるのがSSLということになります。

例えば、あるサイトに問い合わせをするためメールアドレスを送信したとして、その後迷惑メールが大量に届くようになったりしたら困りますよね。
「このサイトは本当に信頼できるの?」
と不安になると思います。
そんなときSSLで通信が暗号化されているサイトならば、第三者に情報を盗み見られることがないため安心して個人情報を入力できるというわけです。
ブラウザのアドレスバー左上に「ロックされた」錠前のマークが表示されている、URL冒頭部分が「https://」で始まるのが、SSL証明のあるサイトです。
ユーザー数の多いウェブブラウザであるGoogle Chromeでは、バージョン68以降から全ての非SSLページに対して「保護されていない通信」という警告が表示されるようになりました。

また、大手検索エンジンGoogleの発表によると、常時SSL(サイト全体を暗号化し、セキュリティを高めること)の導入は「ユーザが安全に閲覧できるサイト」として評価され、SEOへの影響を強めていくとしています。
これは、近年フィッシングサイト(ショッピングサイトなどを装い、個人情報を入力させる詐欺サイト)などによる被害が相次いでいるというインターネット上の動向に沿ったものでしょう。

以前は、常時SSLを導入するにあたってのデメリットとして「読み込み速度が遅くなる」ということが言われていましたが、最近は回線速度が上がってきていますので、大きな問題にはならなくなってきました。
つまり、サイトを所有している方にとってSSLの導入にはメリットの方が大きいということですね。

となると、自社ホームページなどをお持ちの方は
「うちのページも早くSSL化しないと!」
とお考えになることでしょう。

SSLを導入するには、通信の暗号化に必要な鍵とサイト運営者の情報が含まれた「SSLサーバ証明書」を、サーバにインストールする必要があります。
SSLサーバ証明書は、信頼のおける第三者機関にて、サイトの運営者が正しい運営者であるかどうかの審査を行った後に発行されます。SSLサーバ証明書を導入することで、ユーザはサイトの運営者情報や通信が暗号化によって保護されていることを確認できるようになります。
このSSLサーバ証明書は、サイト運営者の認証内容により3種類にレベル分けされています。

①ドメイン認証

サイトのドメイン(住所のようなもの)の使用権を所有していることを認証します。証明書に記載される情報は偽装ができませんので、ユーザは接続しているURLが正しいかどうかを知ることができます。
運営組織の実在性は認証しませんので、登記簿謄本などの提出は不要で、個人事業主の方なども申請が可能です。
最もライトなレベルで、低価格・スピード認証が特徴です。

②企業実在認証

ドメイン使用権の所有の他、運営組織が法的・物理的に存在していることを認証します。ユーザは接続しているサイトの運営組織を知ることができます。
申請には登記簿謄本、企業実印済みの申請書、実印の印鑑証明書が必要となり、ドメイン認証に比べて手間や費用はかかりますが、よりユーザへ安心感を与えられる認証です。
企業の公式サイトなどではこの認証が採用されている場合が多く見られます。

③EV認証

ドメイン名の利用権、組織の法的・物理的実在性に加え、組織の所在地や申し込み意思と権限を確認します。EV認証は世界標準のガイドラインに沿って行われ、最も厳格な審査が行われます。
EV認証を導入したサイトは、アドレスバーに運営組織が表示されるようになるため、ひと目で自分がアクセスしている先を知ることができるようになります。
決済情報の入力を求めるショッピングサイトや金融機関、また大手企業によるブランディングにも利用されている認証です。多くの手間や費用が必要となります。

基本的にSSLの認証には費用がかかるのですが、ドメイン認証の中には無料の証明書も存在しています。
無料のSSL証明書で最も有名なのが、アメリカのISRG(Internet Security Research Group)という非営利団体が運営する「Let’s Encrypt」という証明書です。
Let’s Encryptは有効期間が90日間(約3ヶ月)の証明書ですが、自動で更新することができるスクリプト(プログラム)があるため、実質インストールと設定作業だけで半永久的に維持できる証明書となります。
ただ、こうした自動更新のスクリプトを定期的に実行するためにはサーバー管理者権限が必要となるため、レンタルサーバーの種類によっては手動で更新しなければいけない場合があるので注意が必要です。
レンタルサーバーなどで無料で提供されているSSL証明書には、Let’s Encryptのように無料の証明書を専門に扱う認証局が発行するものと、本来有料のものをレンタルサーバー会社が費用を負担して提供しているものがあります。
利用者にとってはどちらも無料で変わりはないのですが、本来ならば有料の証明書を無料で使うことができるということですね。
さてここで、無料で利用できるならそれに越したことはないのでは?とお思いかもしれません。
しかし、やはりというかなんというか、無料のものにはそれなりのデメリットも存在します。ぜひ、ここを検討して「タダより高いものはない……」とならないようにしたいところです。
とはいえ、無料だから暗号化の強度が劣っているというわけではありません。
では有料の何がいいのか、というと「付加サービス」がついていることがあります。例えば、サイトを毎日スキャンしてウイルスからサイトを保護してくれる機能や、認証局側の過失で起きたクレジットカード番号流出による損害を補償してくれるオプションなど。
無料の場合、こうしたサービスは一切ないものが多いです。
また、暗号化の強度こそ有料と同程度なものの、無料のためにフィッシングサイトなどで取得され、悪用される場合が多く存在します。その結果として、証明書としての信頼性が低下してしまう可能性があります。
さらに、無料で証明書を発行してくれる認証局の運営資金が寄付などで行われている場合、料金を設定している通常の認証局よりも資金難によるサービス終了のリスクが高いといえます。

対する有料の証明書のメリット・デメリットにも触れておきましょう。
まず、有料ならば先ほど無料の方で触れた「付加サービス」がついているために、手厚いサポートを受けることが可能であり、必要ならばより信頼性の高い企業実在認証、EV認証を選択することができます。
また、先ほど無料の例として挙げたLet’s Encryptの有効期間が90日間であるのに対し、最長で2年間の証明書を購入することが可能です。
以上が主なメリットですね。
デメリットと言えるポイントは、やはりまず「費用がかかる」ということ。そして、自動更新に対応していない場合が多いということです。

ここまでお読みいただいた通り、SSL証明書には種類があり、それぞれに特徴やメリット・デメリットが存在します。あれがよくてこれがだめ、というものではなく、ご自分のサイトに合わせて選択していきたいですね。

最後に、実際のところSSL証明書を取得した後にどうやって既に存在しているhttp(非SSL)ページをhttps(常時SSL)に変更するか、という点についても触れてみたいと思います。
ざっくりと言うと、あるページから他のページへ自動的にジャンプする「リダイレクト」という方法を使います。よく楽天のスマホページなどで「◯秒後に新しいトップページへジャンプします」といったような文言を見かけることと思いますが、あれのことです。
リダイレクトにも、一時的なリダイレクトと恒久的なリダイレクトがあり、SSL化の際に使われるのは恒久的な「301リダイレクト」という方法です。

この301リダイレクトを行うために、サイトが存在しているサーバー内にある「.htaccess」というファイルを編集します。
.htaccessというのは、簡単に言えば自分のサイトが間借りしているサーバーに対して「こういう時はこうしてほしい 」 というお願いを記述するファイルです。
そのファイルの最後に、「httpページにやってきた人がいたら、httpsの方に自動的に案内してください」という内容の

——————————–

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://●●●/$1 [L,R=301]

——————————–

以上のコードを書き込めばOKです。(●●●の部分は、サイトのドメイン)
最終行は必ず改行してください。

ただ、.htaccessファイルは記述やアップロード方法を間違えるとサイトそのものがエラーで表示されなくなったりもしますので、慎重な取り扱いが必要です。編集する前に、バックアップを取っておきましょう。

また、WordPressを利用している場合は、ボタンひとつでSSL化してくれるプラグインがありますので、手っ取り早くSSLを導入したいという場合にはそちらを利用するのがいいと思います。
プラグインを使用する際には、どんなプラグインでも起こり得る問題ですが既にインストールしているプラグインとの兼ね合いで動かなかったり、干渉する場合もありますので、そこが気をつけていただきたいポイントですね。(実際にマルチデバイスプラグインと干渉しあってエラーが出ました)

以上、今回はSSLについてざっくりとまとめてみました。
所有されているサイトがまだSSL化されていないという方がいらっしゃいましたら、ぜひSSL化をご検討ください。

関連記事一覧