CA(認証局)
CA(Certification Authority、認証局)は、 公開鍵 とSubjectの関係を確認し、 証明書 へ署名する主体。
CAは主に次の処理を行う。
- CSR の内容と申請者を確認する
- 証明書へシリアル番号と有効期間を設定する
- 証明書の用途と制約を決定する
- CA秘密鍵で証明書へ署名する
- 発行した証明書の失効状態を管理する
CAはCSRをそのまま承認するだけではない。CSRに含まれるSubjectや拡張要求を確認し、最終的に証明書へ含める内容をCA側で決定する。
Root CA
Section titled “Root CA”Root CAは、 証明書チェーン の信頼の起点になるCAである。
Root CA └─ Intermediate CA └─ Server CertificateRoot CA証明書は通常、Root CA自身の秘密鍵で署名した自己署名証明書である。
Root CA証明書をTrust Anchorとして使用する場合、検証側はその証明書を事前に安全な方法で入手する必要がある。
Intermediate CA
Section titled “Intermediate CA”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階層だけ作成できる構成になる。
エンドエンティティ
Section titled “エンドエンティティ”証明書チェーンの末端で、他の証明書を発行しない主体をエンドエンティティと呼ぶ。
TLSサーバー証明書やTLSクライアント証明書が該当する。
CA証明書 basicConstraints=CA:TRUE keyUsage=keyCertSign
サーバー証明書 basicConstraints=CA:FALSE extendedKeyUsage=serverAuthCA証明書とCA秘密鍵
Section titled “CA証明書とCA秘密鍵”CAとして署名するには、CA証明書と対応するCA秘密鍵の両方が必要になる。
| ファイル | 用途 |
|---|---|
| CA証明書 | Issuer情報とCA公開鍵を提供する |
| CA秘密鍵 | 新しい証明書やCRLへ署名する |
CA証明書は配布できるが、CA秘密鍵は公開してはいけない。
OpenSSLでのCA署名
Section titled “OpenSSLでのCA署名”OpenSSLでは、用途に応じて次の方法を選択できる。
| 方法 | 特徴 |
|---|---|
| openssl x509 | CSRへ簡易的に署名する。発行履歴や失効状態は管理しない |
| openssl ca | 発行履歴、シリアル番号、失効、CRLを状態ファイルで管理する |
- RFC 5280 Internet PKIにおけるCA、エンドエンティティ、証明書チェーン、失効のモデル。
OpenSSL公式ドキュメント
Section titled “OpenSSL公式ドキュメント”-
openssl-ca OpenSSLの最小CAアプリケーション。
-
openssl-verification-options Trust Anchorと証明書チェーン構築の扱い。