🐈

デジタル証明書について整理した

2023/05/01に公開

はじめに

デジタル証明書や認証局(CA)についてなんとなく理解していたものを正しく理解するために整理してみました。Written with ChatGPT

デジタル証明書とは

まず、デジタル証明書は、インターネット上での安全な通信を確立するために使用されるファイルです。証明書は、主体の識別情報、公開鍵、および認証局(CA)による署名が含まれています。X.509が標準フォーマットであり、拡張子は .cert もしくは .crt になります。また、証明書に含まれる公開鍵のペアである秘密鍵の拡張子は .key
です。

証明書の種類

証明書はその利用用途に応じて大きく分けて以下の3種類が存在します。

  • サーバ証明書
  • クライアント証明書
  • ルート証明書・中間証明書

サーバ証明書

サーバ証明書は、サーバの識別情報と公開鍵を含む証明書で、クライアントがサーバの真正性を検証するために使用されます。

クライアント証明書

クライアント証明書は、クライアントの識別情報と公開鍵を含む証明書で、サーバがクライアントの真正性を検証するために使用されます。

ルート証明書・中間証明書

ルート証明書や中間証明書など、他の種類の証明書も存在する。これらは、証明書チェーンを構築し、信頼性を検証するために使用されます。

認証局(CA)

認証局(CA)は、デジタル証明書を発行し、証明書の信頼性を保証する役割を果たします。CAは、証明書の真正性を検証し、証明書のコンプライアンスが守られていることを確認します。

認証局 (CA) による証明書の検証プロセス

認証局は、証明書の申請者が適切な主体であることを確認し、証明書のコンプライアンスが守られていることを検証します。検証プロセスは、次の手順で行われます。

  1. 証明書の申請者は、CAに証明書署名要求(CSR)を提出する。CSRには、申請者の識別情報と公開鍵が含まれる。
  2. CAは、申請者の識別情報を検証する。検証プロセスは、電話やメールなどの方法で、申請者の正当性を確認する。
  3. CAは、申請者の識別情報が正当であることが確認されたら、証明書を発行し、CAの秘密鍵で署名する。

これにより、証明書が適切な主体によって使用されており、証明書のコンプライアンスが守られていることが保証されます。

(補足)HTTPS通信方式

HTTPS通信では、サーバとクライアント間で暗号化された通信を行う。サーバ証明書とクライアント証明書を使用して、相互に真正性を検証し、安全な通信が確立される。認証局(CA)は、証明書の信頼性を保証し、インターネット上での安全な通信を実現するために重要な役割を果たす。

(補足)ルート証明書とCA証明書の違い

ルート証明書とCA証明書は、一部の文脈では同じものを指すことがあるが、通常はそれぞれ異なる目的と意味を持ちます。

  1. ルート証明書は、公開鍵インフラストラクチャ(PKI)の階層構造の最上位に位置する証明書で、認証局(CA)によって自己署名され、他の証明書の信頼性を保証するために使用されます。ルート証明書は、クライアント(ウェブブラウザやオペレーティングシステム)にプリインストールされており、信頼のアンカーとして機能します。

  2. CA証明書は、認証局(CA)が発行する証明書で、他の証明書(サーバ証明書やクライアント証明書)を署名するために使用されます。CA証明書は、ルート証明書や中間証明書のいずれかであることが一般的です。ルート証明書は最上位のCA証明書であり、中間証明書は下位のCA証明書です。CA証明書は、証明書チェーンの一部として、他の証明書の信頼性を検証するために使用されます。

これらことから、ルート証明書は、特定のタイプのCA証明書を指します。しかし、CA証明書は、ルート証明書だけでなく、中間証明書も含むより広い範囲の証明書を指します。そのため、両者は完全に同義ではありませんが、一部の文脈では同じものを指すことがあります。

まとめ

この記事では、デジタル証明書や認証局(CA)に関する基本的な概念を整理しました。証明書の種類や役割、CAの機能、証明書のファイル形式、ルート証明書とCA証明書の違いなどについて解説しました。デジタル証明書と認証局は、インターネット上での安全な通信を実現するために重要な役割を果たしています。

Discussion