Webサイトやブログで必須のSSLについての仕組みと設定手順を詳しく解説します。
- SSL証明書の種類や詳細、認証局毎の違いがわかります
- WebブラウザからSSL証明書を確認する方法がわかります
SSLとは
SSLとは秘密鍵と証明書で通信内容を暗号化する仕組みです。
個人情報やクレジットカード情報を扱っているWebサイトはもちろんのこと、個人ブログや1ページだけのペラサイトでもSSLは必須のセキュリティ設定です。
SSL通信の確認方法
利用者側からSSLで通信されていることを確認する方法は、Google ChromeなどのWebブラウザでWebサイトやブログにアクセスしたときにアドレスバーの上に南京錠のマークの表示の有無です。
↑南京錠のマークが表示されているとSSLで暗号化された状態で接続されていることを示しています。
WebブラウザはURLの先頭のhttps://は表示させない仕様になっていて、yublog.jpとだけ表示されるのですが、実際にはhttps://yublog.jpという情報が入っています。
↑反対にSSLで暗号化されていない状態だと「保護されていない通信」と表示されます。
SSL化されていないと情報を盗み見ることが可能
SSL化されていないWebサイトやブログから個人情報やクレジットカード情報などを入力して送信したとします。
もしそのとき、悪意のある第三者がそららの情報を入手して解析すると通信情報を盗み見ることができてしまいます。
具体的な場面を挙げると例えば、インターネットカフェの通信用ルータの途中にパケットキャプチャとよばれるソフトウェアを介すと通信データを丸ごと入手することが可能です。
その通信データを解析することで個人情報やクレジットカード情報を入手します。
もちろん、SSL化されていな通信だけ解析して情報を入手することが可能です。
SSL化されていると通信データが暗号化されているので解析できません。
他にも家庭用の無線ルータの脆弱性を利用し、データを受信してパケットキャプチャを介して解析することもできてしまいます。
このようなインターネットの通信データが盗み見られていることを確認する術はありません。なので自己防衛が大切になってきます。
Webサーバ側にSSLを実装する
SSLを利用するにはWebサーバ側に秘密鍵とよばれるファイルと、証明書とよばれるファイルの設置が必要です。ここでいうファイルとはデータのことです。
秘密鍵と証明書は一般の個人や組織は取得できません。必ず第三者機関の認証局とよばれる企業が証明書を発行することができます。なぜなら世間一般で認められる認証局が発行した証明書でないと信頼がないからです。
SSL証明書の種類
SSL証明書には大きく別けて下記があります。
- ルート証明書
- クロスルート証明書
- 中間証明書
- サーバー証明書
↑上から順番に認証局の信頼性を担保している構造と仕組みになっています。
Webブラウザから証明書を確認する方法
WebブラウザからSSL証明書を確認する手順です。
PCのGoogle Chromeの場合です。他のブラウザでも同様の操作で確認できます。
- アドレスバーの南京錠のマークをクリックします
- “この接続は保護されています”をクリックします
- “証明書は有効です”をクリックします
- 証明書の有効期限を確認
- 証明書の認証局(発行者)を確認
- 証明書のパスを確認
④~⑥は必要に応じて表示させてください。
実際の写真を使って説明します。
①南京錠のマークをクリック
②”この接続は保護されています”をクリックします
③”証明書は有効です”をクリックします
④証明書の有効期限を確認
↑証明書の全般タブ内の下に有効期限が表示されます。
⑤証明書の認証局(発行者)を確認
↑証明書の詳細タブに発行者(認証局)と有効期限の詳細が表示されます。
上の写真の場合は発行者が R3,Let’s Encrypt,US と表示されているので無料の証明書ということが判ります。
⑥証明書のパスを確認
↑上からルート証明書、中間証明書、サーバー証明書の順番になっています。
最後にOKボタンをクリックしてウィンドウを閉じます。
ルート証明書とは
サーバー証明書と中間証明書を証明するのがルート証明書です。
つまり最上位に位置するのがルート証明書です。
ルート証明書は世界的権威のある組織が発行した証明書であることが殆どです。
通常、ルート証明書は中間証明書に含まれるのでとくに用意や意識する必要はありません。
クロスルート証明書とは
クロスルート証明書はガラケーなどの古い端末をはじめとした特殊な通信がある場合に用いますが、ほとんどのWebサイトやブログでは不要です。
中間証明書とは
サーバー証明書を証明するのが中間証明書です。
その中間証明書を証明するのがルート証明書です。
通常はサーバー証明書に含まれていますが、まれに含まれていないサーバー証明書も存在ます。その場合はWebサーバ側にサーバー証明書を設置する際に中間証明書も設置する必要があります。
サーバー証明書とは
世間一般でいうSSL証明書はサーバー証明書と言います。
サーバー証明書には複数の種類があります。
サーバー証明書の種類
サーバー証明書には証明するドメインの数に応じて複数の呼び名があります。
- マルチドメイン証明書
- ワイルドカード証明書
これらは証明書の会社や仲介会社によっても名称がことなりますが、一般的には用途によって使い分けます。
マルチドメイン証明書とは
通常のサーバー証明書は1つのドメインにつき証明書は1枚必要ですが、
マルチドメイン証明書を利用すると複数のドメインを1枚の証明書に含めることができます。
例えば通常のサーバー証明書は yublog.jpのドメインでしか利用できませんが、マルチドメイン証明書を利用すると下記のような複数の異なるトップレベルドメインを利用できます。
yublog.net
yublog.org
yublog.blog
ワイルドカード証明書とは
コモンネーム(CN)というサブドメインと含むドメイン名の先頭にアスタリスク(*)を指定した証明書をワイルドカード証明書と言います。
1枚の証明書で複数のサブドメインが利用できる仕組みになっています。
例えばCNが *.yublog.jp となっていた場合
help.yublog.jp
news.yublog.jp
などのサブドメインが1枚の証明書で利用できます。
つまり1枚の証明書で複数のWebサーバに設置できるというわけなので、複数のサブドメインを利用している場合は下記のメリットがあります。
- 事務手続きが1回で済む
- 複数の証明書を購入するよりも安価
通常の証明書はサブドメイン毎に1枚づつの証明書が必要になりますが、ワイルドカード証明書を利用することでサブドメインを纏めて1枚の証明書に収めることができるわけです。
マルチドメインとワイルドカードを組み合わせた証明書も存在します
サーバー証明書の認証レベル
サーバー証明書には認証レベルがあります。
レベルの違いは信頼性と価格の違いです
信頼性の高い順に並んでいます。価格も上になるほど高価です。
- EV認証
- OV認証
- DV認証
EVとOVは実在認証や企業認証とも呼ばれています。
DV認証はドメイン認証と呼ばれています。
※認証局によって認証レベルの名称に違いがあります。
EV認証だけはWebブラウザによってはアドレスバーが緑色になります。
OVとEV認証は実在確認の審査がある
OV認証とEV認証は実在認証や企業認証とも呼ばれているように証明書の申し込み後に会社の代表電話番号宛に電話がかかってきます。その際に申し込んだ担当者が電話に出ないといけません。
申し込んだ担当者が電話人出るまでは証明書発行の進捗が滞ってしまいます。
SHA-1とSHA-2とは
SHA-1とSHA-2では暗号化する仕組みが違います。
SHA-2のほうが新しい仕組みなので安全性が高いです。
サーバー証明書を作成する元ネタになるCSRファイルを作成するときにSHA-2を指定できます。現在の証明書の主流はSHA-2になっています。
SHA-2にするにはLinuxのopensslコマンドでCSRファイルを作成するときに-sha256パラメータを指定します
SSL証明書の認証局
証明書の購入を仲介している代理店は沢山ありますが、日本の主な有料の信頼性の高い証明書を発行している認証局は下記になります。
- DigCert
- CyberTrust
- GlobalSign
- Get Trust
- SECOM
証明書の発行数が最も多く、信頼性が高いのはDigCertです。
次点でCyberTrustです。
それぞれの認証局を詳しくみていきます。
DigCert
DigCert(デジサート)はアメリカの認証局を運営する企業です。
主にEVとOV証明書を発行しています。
2017年にシマンテックの証明書部門を買収して世界最大手の証明書発行会社(認証局)になっています。
DigCertは高価かもしれませんが、文句なしのブッチギリに証明書の信頼性はNo1です。
SSL TOOLSを提供しているだけのことはあります。
CyberTrust
CyberTrust(サイバートラスト)は証明書発行サービスしている独立系の日本の企業です。
アメリカにも同名同業種の企業があります。
日本の証明書発行会社の中では最大手です。
GlobalSign
GlobalSign(グローバルサイン)はGMOグローバルサイン株式会社が所有する証明書のブランド名です。
2006年にベルギーのグローバルサイン社を買収しています。
2007年に日本ジオトラスト株式会社からグローバルサイン株式会社へ社名変更しています。
日本国内では2番手の証明書発行会社です。
Geo Trust
GeoTrust(ジオトラスト)は証明書を発行するアメリカの会社です。
DigCertやCyberTrustの後塵を拝しています。
SECOM
当記事のSECOM(セコム)はセコムトラストシステムズ株式会社が発行する証明書でセコムパスポートと呼ばれています。
SECOMの証明書(セコムパスポート)はクロスルート証明書が必要だったりと難点あるので他の認証局の証明書を購入することをおすすめします。
各認証局の証明書の代理店(仲介会社)
それぞれの認証局から証明書を購入するには仲介会社を通す必要があります。要は代理店(パートナー)です。認証局から直接購入することは基本的にはできません。
無料のSSL証明書
有料の証明書のほうが信頼性が高いのですが価格も高いです。
個人ブログなどで信頼性は不要な場合は無料のSSLサーバー証明書で十分です。
代表的な無料のSSLサーバー証明書は下記のものがあります。
- Let’s Encrypt
Let’s Encryptのデメリットとメリット
有料の証明書と比べる無料証明書はデメリットの方が多いです。
90日間しか有効期限がないことが最大のデメリットです。
ただしLinuxコマンドの知見がある場合はCertbotというソフトウェアを使用して証明書更新作業を自動化できます。
まとめ
SSL証明書を必須のセキュリティ設定ですが、個人ブログではレンタルサーバーの無料の証明書で十分です。
有料の証明書を利用する必要があるのは企業のWebサイトです。企業のWebサイトがレンタルサーバーの無料の証明書を利用するのを見たことは一度も有りません。
それほど、企業の信頼性を保つために有料のSSL証明書は必要不可欠だということを示唆しています。
代理店で証明書を購入する場合は必要ないかもしれませんが、場合によっては必要になる証明書を購入するときの元になるCSRファイルを作成する手順を別記事にまとめたので参考にしてください。
Webサーバに証明書を設置/更新する方法の記事はこちらです↓