X.509証明書と公開鍵の基礎を解説

目次

X.509証明書と公開鍵の基礎を解説

LinuC 303(バージョン2.0)試験における第2章「X.509証明書と公開鍵の基礎」では、PKI(公開鍵基盤)とその中核技術であるX.509証明書の理解が求められます。本記事では、証明書の構造、トラストチェーン、証明書の発行・管理手順、OpenSSLの活用などを体系的に解説します。

✅ 学習目標

  • X.509証明書の構造と拡張の理解
  • 公開鍵・秘密鍵の生成と管理
  • OpenSSLを用いた認証局(CA)の構築
  • CSR(証明書署名要求)の作成と署名
  • 証明書失効(CRL/OCSP)の概念
  • PEM, DER, PKCSなどの形式の違い

1. X.509証明書とは

▶ X.509の概要

X.509証明書とは、公開鍵とその所有者の情報を結びつけるデジタル文書です。信頼された認証局(CA)によって署名され、改ざんがないことが保証されます。

▶ 主な構成要素

  • Subject:証明書の所有者情報
  • Issuer:証明書を発行したCA
  • Public Key:所有者の公開鍵
  • Signature:CAによる署名
  • Validity:有効期限
  • Serial Number:一意の識別子

▶ X.509v3拡張

  • Basic Constraints:CAフラグ
  • Key Usage:鍵の使用用途(署名、暗号化など)
  • Subject Alternative Name (SAN):DNS/IPなどの別名

2. トラストチェーンとPKIの概念

トラストチェーンとは、ルートCAから中間CA、最終的にエンドエンティティ(例:Webサーバー)までの信頼の連鎖です。

[ルートCA] → [中間CA] → [サーバー証明書]

ルートCAの証明書はOSやブラウザに事前に登録されており、最終的な証明書の信頼性はこのチェーンをたどって検証されます。

3. 公開鍵と秘密鍵の生成

# 秘密鍵を生成(RSA)
openssl genrsa -out ca.key 4096

# 秘密鍵から公開鍵を抽出
openssl rsa -in ca.key -pubout -out ca.pub

秘密鍵(.key)は厳重に管理する必要があります。

4. CSR(証明書署名要求)の作成と署名

# CSRの作成
openssl req -new -key server.key -out server.csr

CSRにはCN(Common Name)や組織情報などが含まれます。

# 自己署名証明書の作成
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

# CA署名証明書の作成
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt

5. 認証局(CA)の構築と運用

# CA証明書の作成(自己署名)
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

CA運用には以下のようなファイル群が必要です。

  • ca.key(秘密鍵)
  • ca.crt(CA証明書)
  • serial(シリアル番号)
  • index.txt(証明書発行履歴)

6. 証明書の失効(CRLとOCSP)

# CRLの生成
openssl ca -gencrl -out ca.crl

OCSPは証明書の失効状態をリアルタイムで確認できるプロトコルです。

7. 証明書ファイル形式の違い

形式特徴拡張子
PEMBase64 + ヘッダー付き.pem, .crt, .key
DERバイナリ形式.der, .cer
PKCS#12証明書と鍵を一括管理.p12, .pfx
# PEM → DER 変換
openssl x509 -in cert.pem -outform der -out cert.der

# PEM証明書の表示
openssl x509 -in cert.pem -text -noout

📝 章末問題

  • Q1. X.509証明書のIssuerとSubjectは何を意味しますか?
  • Q2. 自己署名証明書とCA署名証明書の違いは?
  • Q3. トラストチェーンの構成とは?
  • Q4. CSRの目的は何ですか?
  • Q5. PEMとDER形式の違いは?
  • Q6. CRLとOCSPの違いは?
  • Q7. RSAの秘密鍵を生成するOpenSSLコマンドは?
  • A1: Issuerは証明書を発行したCA。Subjectは証明書の所有者。
  • A2: 自己署名は自分自身が署名、CA署名は第三者による署名。
  • A3: ルートCA → 中間CA → サーバー証明書。
  • A4: 認証局に証明書発行を依頼するための情報を含む。
  • A5: PEMはテキスト、DERはバイナリ形式。
  • A6: CRLはリスト配布、OCSPはリアルタイム確認。
  • A7: openssl genrsa -out private.key 2048

次の章では、実際の通信で利用されるTLS/SSLの構成や設定について詳しく見ていきます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次