コンテンツにスキップ

CA(認証局)

CA(Certification Authority、認証局)は、 公開鍵 とSubjectの関係を確認し、 証明書 へ署名する主体。


CAは主に次の処理を行う。

  • CSR の内容と申請者を確認する
  • 証明書へシリアル番号と有効期間を設定する
  • 証明書の用途と制約を決定する
  • CA秘密鍵で証明書へ署名する
  • 発行した証明書の失効状態を管理する

CAはCSRをそのまま承認するだけではない。CSRに含まれるSubjectや拡張要求を確認し、最終的に証明書へ含める内容をCA側で決定する。


Root CAは、 証明書チェーン の信頼の起点になるCAである。

Root CA
└─ Intermediate CA
└─ Server Certificate

Root CA証明書は通常、Root CA自身の秘密鍵で署名した自己署名証明書である。

Root CA証明書をTrust Anchorとして使用する場合、検証側はその証明書を事前に安全な方法で入手する必要がある。


Intermediate CAは、上位CAから署名されたCAである。Subordinate CAと呼ばれることもある。

Root CA秘密鍵を日常的な証明書発行から切り離し、Intermediate CAがサーバー証明書などを発行する。

主な利点:

  • Root CA秘密鍵をオフラインで保管しやすい
  • Intermediate CAに用途や発行可能な階層を制限できる
  • Intermediate CAに問題が起きた場合、Root CAを維持したまま失効・交換できる

Root CAへ pathlen:1、Intermediate CAへ pathlen:0 を設定すると、Root CAの下にIntermediate CAを1階層だけ作成できる構成になる。


証明書チェーンの末端で、他の証明書を発行しない主体をエンドエンティティと呼ぶ。

TLSサーバー証明書やTLSクライアント証明書が該当する。

CA証明書
basicConstraints=CA:TRUE
keyUsage=keyCertSign
サーバー証明書
basicConstraints=CA:FALSE
extendedKeyUsage=serverAuth

CAとして署名するには、CA証明書と対応するCA秘密鍵の両方が必要になる。

ファイル 用途
CA証明書 Issuer情報とCA公開鍵を提供する
CA秘密鍵 新しい証明書やCRLへ署名する

CA証明書は配布できるが、CA秘密鍵は公開してはいけない。


OpenSSLでは、用途に応じて次の方法を選択できる。

方法 特徴
openssl x509 CSRへ簡易的に署名する。発行履歴や失効状態は管理しない
openssl ca 発行履歴、シリアル番号、失効、CRLを状態ファイルで管理する


  • RFC 5280 Internet PKIにおけるCA、エンドエンティティ、証明書チェーン、失効のモデル。