目次
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. 証明書ファイル形式の違い
| 形式 | 特徴 | 拡張子 |
|---|---|---|
| PEM | Base64 + ヘッダー付き | .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の構成や設定について詳しく見ていきます。
コメント