【SSL】 サーバー証明書とは何か?【詳細】

レンタルサーバーのチェックをしていると必ず出てくるSSL証明書ですが、今回は「サーバー証明書」に特化して説明します。

HTTPSプロトコルとSSL技術

最初に「SSL」について整理します。

  • インターネットはオープンな世界
  • HTTPプロトコル(TCP/80)で通信すると丸裸状態
  • HTTPSプロトコル(TCP/443)で通信を暗号化できる
  • HTTPSはSSL(Secure Socket Layer)技術を利用して暗号化している
  • HTTPはプロトコルである(TCP/80)
  • HTTPSはプロトコルである(TCP/443)
  • SSLもプロトコルであるが他のプロトコルと結びつく(HTTPと結びついてHTTPSになる等)
  • SSLは暗号化技術である
  • SSLは鍵認証を利用してデータを暗号化をしている
  • SSLは暗号化だけではなく証明機能もある
  • SSLは証明書を利用して身元の証明をしている
  • クライアントを証明するものを「クライアント証明書」
  • サーバーを証明するものを「サーバー証明書」
  • 現在はTLS/SSLと表記するになっている
  • TLSとはTransport Layer Securityの略である
  • TLSとはプロトコルである
  • TLSとはSSL3.0をバージョンアップした暗号化技術である

 

 

ここで混乱しないように再度確認ですが、

  • SSLの役割は3つある
  • 1つは「暗号化」
  • 2つは「改ざん検知」
  • 3つは「認証機能」

です。

 

サーバー証明書はサーバーを証明するためのものですが、SSLのつの役割の1つである「認証機能」を利用してサーバーが本物であることを証明しています。

 

認証とは?

認証とは、Wikipediaによると「何かによって、対象の正当性を確認する行為」です。

他に「認証」を表す言葉として「Authentication」「Certification」があります。

 

Authentication (from Greek: αὐθεντικός authentikos, "real, genuine", from αὐθέντης authentes, "author") is the act of confirming the truth of an attribute of a single piece of data (a datum) claimed true by an entity. In contrast with identification, which refers to the act of stating or otherwise indicating a claim purportedly attesting to a person or thing's identity, authentication is the process of actually confirming that identity.

 

Certification refers to the confirmation of certain characteristics of an object, person, or organization. This confirmation is often, but not always, provided by some form of external review, education, assessment, or audit.

 

「Authentication」と「Certification」を比べてみると

Authenticationは、何かを「本物である」「正当なものである」と証明する「行為」を指すようです。

Certificationは、何かを「本物である」「正当なものである」と証明する「モノ」を指すようです。

 

だから「Authentication」は、「たとえば指紋認証など何かを証明する」ことを指すと思います。

たとえば、パソコンに自分で好きなパスワードを設定します。

そして自分しかわからないパスワードを入力して合っていればログインできます。

これも「Authentication」です。

 

一方、運転免許証は「Certification」にあたるでしょうか。

なぜなら運転免許証は「国家(公安委員会)」が、あなたが運転することを認証して発行しているからです。

 

英語で且つ言葉の定義となると難しいですが、

  • 卒業証書、運転免許証、合格証→Certification
  • 指紋認証で本人であることが証明されて部屋に入ることが許された→Authentication
  • 社員しか分からないパスワードを入力してオフィスに入ることが許された→Authentication
  • パソコンにパスワードを設定して、アカウントとパスワードを入力してログインした→Authentiation

となると思います。

 

「Authentication」と「Certification」を図解してみました。

「Authentication」は単純にログインアカウントとパスワードが一致したような、あらかじめ設定したルールに適合した場合を言います。

 

 

「Cetification」は、運転免許証の交付など、国家などの権威から許可をもらったことを言います。

 

サーバー証明書はサーバーを証明するもの

サーバー証明書はサーバーを証明するものですが、「Cetification」でしょうか?「Authentication」でしょうか?

サーバー証明書は「Certification」です。

 

その理由ですが、サーバー証明書はサーバーを証明するものですが、「アカウント」と「パスワード」で正しいサーバーかどうかを判定するのは、なじまないからです。

 

このサーバーは正当な本物のサーバーであることを証明するのは、信頼できる第三者だけです。

のちほど説明しますが、たとえば「EV SSL」だと登記が必要だったり、帝国データバンクに登録されていることが条件づけられています。

つまり第三者に「このサーバーは本物ですよ」と証明されているわけです。

その結果、ユーザーに信頼してもらえてクレジットカード番号を入力したり個人情報を入力してもらえます。

 

両者が「権威」を持ち、相手を認証する

タイトルだけ見ても何を言っているのか不明だと思うので図解します。

 

認証機能を利用する場合のSSL証明書は「Certification」の方です。

 

サーバーを証明する場合は、

サーバー側が「サーバー証明書」を持ち

クライアントPC側が「ルート証明書」を持つ

 

クライアントPCを証明する場合は、

クライアントPC側が「クライアント証明書」を持ち

サーバー側が「ルート証明書」を持つ

 

上図のようにクライアントPCにインストールされている「ルート証明書」が「サーバー証明書」が「本物であるか」「正当性があるか」をチェックして、問題ないなら身元を保証しています。

また、サーバーにインストールされている「ルート証明書」が「クライアント証明書」が「本物であるか」「正当性があるか」をチェックして、問題ないなら身元を保証しています。

 

ルート証明書はあらかじめパソコンのブラウザにインストールされている

普段私たちが利用しているパソコンのブラウザ「Google Chrome」「Firefox」「IE」などには、あらかじめ「ルート証明書」がインストールされています。

 

信頼されたルート証明機関は、VeriSign、SECOM、GeoTrust、GlobalSignなど聞いたことのある組織名ばかりです。

正式な手続きでこれらの証明書発行機関に認証されれば、下図のように緑色の「鍵マーク」が表示されます。

 

 

タマちゃん
サーバーに入っている「ルート証明書」もクライアントPCに入っている「ルート証明書」も同じものなの?

 

違うルート証明書です。

その理由は、新規でサーバーを構築した際に「ルート証明書」はインストールされていないため、別途クライアント証明書を作成する際に「ルート証明書」を作成してサーバーにインストールする必要があります。

 

そのため、

  • サーバーに入っている「ルート証明書」
  • クライアントPCに入っている「ルート証明書」

は異なります。

 

クライアント証明書については以下のページをご参照ください。

サーバー証明書の中身・内容とは?

ブラウザより「サーバー証明書」の中身を見ることができます。

 

IEの場合は、以下のようにURLを入力する欄の右側に「鍵」のアイコンがあるので、このアイコンをクリックします。

 

鍵のアイコンをクリックすると、下図のようにウィンドウが開くので「証明書の表示」をクリックします。

 

下図のように証明書の情報が表示されます。

発行者は「Let's Encrypt Authority X3」

発行先はこのサイト「go-journey.club」です。

 

タマちゃん
「Let's Encrypt Authority X3」がこのサイトのサーバー証明書を発行しているの?
山ちゃん
そうだよ。
タマちゃん
「Let's Encrypt Authority X3」がルート証明書の発行機関なの?

 

確認してみましょう。

「証明のパス」タブをクリックすると、下図のように数珠つなぎで証明書がつながっています。

そのチェーンの一番上にある「DST Root CA X3」がルート証明書発行機関になります。

さらに「DST Root CA X3」について調べてみましょう。

 

「DST Root CA X3」を選択して「証明書の表示」ボタンをクリックします。

 

新しくウィンドウが開くので「詳細」タブをクリックします。

 

「発行者」が発行元です。

下図を見ると「Digital Signature Trust Co.」であることが分かります。

サーバー証明書は、なぜ数珠つなぎのようになっているのか?

先ほど下図のように証明書が数珠つなぎになっているところを確認したと思いますが、なぜこのように数珠つなぎになっているのでしょうか?

実はほとんど(100%ではない)のサーバー証明書は、上図のように3階層になっています。

上:ルート証明書

中:中間証明書

下:エンドエンティティ証明書(サーバー証明書、クライアント証明書のこと)

 

以下のように

「ルート証明書」が「中間証明書」を信頼

「中間証明書」が「サーバー証明書」を信頼

します。

 

ルート証明書

↓ 信頼します

中間証明書

↓ 信頼します

エンドエンティティ証明書

 

ルート証明書は、すべての証明書の信頼システムの頂点に位置するので「ルート(root)」と名付けられています。

 

まとめ

最後に「サーバー証明書」をまとめましょう。

 

  • サーバー証明書はサーバーを証明する
  • サーバー証明書はSSL証明書である
  • サーバー証明書は「Certification」である
  • サーバー証明書はサーバーにインストールされている
  • ルート証明書がサーバー証明書を信頼できると保証する
  • ルート証明書はパソコンのブラウザにインストールされている
  • パソコンのブラウザにインストールされているルート証明書が保証できない不明な証明書の場合、警告がでる
  • 通常、サーバー証明書は3階層になっている(ルート証明書→中間証明書→サーバー証明書)

Posted by 100%レンタルサーバーを使いこなすサイト管理人

コメントを残す

メールアドレスが公開されることはありません。