Blog ブログ
2023.08.22

【インフラお役立ち情報】SSLとは ~第2回:SSL証明書の構成はどうなっているのか~

お役立ち情報

SSLについて、「【インフラお役立ち情報】SSLとは ~第1回:SSL通信とはどういうものか~」の続きです。

【SSL証明書の構成】
SSL証明書は階層構造となっており、以下の3階層で構成されており、証明書チェーンと呼ばれます。
余談ですが、過去には2階層、4階層などありましたが、現在は3階層のみとなっています。

ルート証明書
└中間CA証明書
 └サーバー証明書

各階層の役割は以下の通りです。

ルート証明書
・最上位の証明書であり、ルート認証局による自己署名を用いた、自らの証明書を指し、自分で「私は信頼できますよー」と保証することが許されています。
・国内での代表的なルート認証局は、シマンテックやグローバルサイン、セキュアコアなどがあります

中間CA証明書
・ルート認証局の署名を照合する際に使用します。
・ルート証明書との違いは、自らの認証ができないことです。その代わり、ルート証明書とサーバー証明書との仲介を行うことでセキュリティの強化に一役かっています。

サーバー証明書
・ドメイン(www.nac-care.co.jpなど)に紐付く証明書です。
・上記のルート証明書と中間CA証明書を含めてサーバー証明書と呼ぶことがありますが、サーバー証明書はドメインに紐付く証明書を指し、SSL証明書とはルート証明書、中間CA証明書、そしてサーバー証明書の全体を指しています。

まずは、弊社のサイトを例に証明書の構成を確認してみましょう。

弊社サイトにアクセスするとURLの左に錠前のマークがあります。

当社HPサイトのURL

錠前マークをクリックして「この接続は保護されています」→「証明書は有効です」の順でクリックすると証明書ビューアが表示されます。

証明書ビューア画面

「全般」タブには発行元の情報や有効期限などが表示され、「詳細」タブには証明書チェーンが階層構造で表示されます。

証明書ビューアの詳細表示

ここまで確認することで、弊社のSSL証明書はUSERTrust RSAというルート認証局から認証され、SecureCoreの中間CA証明書によりルート認証局の署名の正当性が保証されたwww.nac-care.co.jpドメインのサーバー証明書を使用していることが分かります。

Webサイトを閲覧していると稀に「このWebサイトで提示されたセキュリティ証明書は、信頼された証明機関から発行されたものではありません。」と警告が出るサイトがありますが、これは使用しているルート証明書がブラウザで認められていない認証局から発行されている場合に出るメッセージです。
考えられる原因として、自己署名証明書で構成されたSSL証明書を使用している、ブラウザで保存しているルート証明書が期限切れなどで古い場合に発生します。

サーバー証明書は更新手続きをすることで有効期限を変更できます。また、中間CA証明書もサーバー証明書の発行・更新の際に発行元の証明書ベンダーから提供されます。

それではルート証明書は、どのように更新されるのでしょうか?

ルート証明書はWindows Updateに含まれるルート証明書更新プログラムによって最新化されます。
ルート証明書更新プログラムは、マイクロソフトがインターネット上に公開している「信頼できるルート証明書のリスト」にアクセスして公開されているルート証明書をPCにダウンロードします。
そのため、Windows Updateを定期的に実行しないと、ある日突然インターネットでサイトが見れなくなる、ということが発生しますので、Windows Updateは定期的に行ってください。
(企業で一元管理しているPCはWindows Updateを禁止している所もありますが、その場合は定期的なPCの一括メンテナンスなどでPC内のルート証明書を更新しています)

【SSL通信について】
それでは、ここからはSSL暗号化通信までの流れを説明します。
WebサーバーとWebブラウザ間では、以下の流れでSSL/TLS通信が開始されます。
これを「ハンドシェイク」と呼びます。

1.SSL暗号化アルゴリズムの合意(SSL暗号化仕様交渉)
Webブラウザ - Webサーバー間で使用できる一番安全なSSL暗号化の仕様を決めます。

2.SSLサーバー証明書提示
WebサーバーはWebブラウザへSSLサーバー証明書を送付します。
Webブラウザは受信したSSLサーバー証明書を確認します。

3.共有鍵の元データ交換・共通鍵の生成
Webブラウザは共通鍵の元となるデータを作成し、SSLサーバー証明書の公開鍵で暗号化してWebサーバーへ送信します。
この際、両社は同じ元データを使用し、共通鍵を生成します。(全く同じものを生成します)

4.SSL暗号化通信開始
上記3.までのやり取りで共通鍵が作成されることでSSL暗号化が成立し(ハンドシェイク)、SSL暗号化通信が開始されます。

SSL構築の図解

第1回と今回の第2回を通じてSSL通信とはどういうもので、どのように通信しているか、そしてSSL証明書がどのような構成となっているかをお伝えしましたが、いかがでしたでしょうか。

次回は実際にサーバー証明書を発行し、SSL暗号化サイトを作成してみましょう。