コンテンツにスキップ

X.509拡張

X.509証明書 に追加される、用途・制約・識別情報を表す拡張フィールド


X.509拡張は、証明書に対して次のような情報を追加するために使う。

  • この証明書は CA 証明書か
  • この鍵は何に使ってよいか
  • TLSサーバー証明書として使えるか
  • どのDNS名・IPアドレスに対して有効か
  • どのCAに署名された証明書か

拡張 役割
basicConstraints CA証明書かどうかを示す
keyUsage 鍵の基本用途を示す
extendedKeyUsage 鍵の具体的な用途を示す
subjectKeyIdentifier この証明書の鍵の識別子
authorityKeyIdentifier 署名したCAの鍵の識別子
subjectAltName 証明書が有効なドメイン名・IPアドレスを示す

CA証明書かどうかを示す。

extensions.cnf
basicConstraints=critical,CA:TRUE,pathlen:1
値 役割 使用先
critical 検証側がその拡張を理解できない場合、証明書を拒否させる CA証明書、サーバー証明書
CA:TRUE CA証明書として使えることを示す CA証明書
CA:FALSE エンドエンティティ証明書であることを示す サーバー証明書
pathlen:n このCAより下に置けるIntermediate CA証明書の最大数を n で示す CA証明書

証明書内の 公開鍵 の基本用途を示す。

extensions.cnf
keyUsage=critical,keyCertSign,cRLSign

cRLSign は、 CRL への署名を許可する。

値 役割 使用先
digitalSignature デジタル署名に使う サーバー証明書
keyEncipherment RSA鍵配送で暗号化された鍵を復号する RSA系のTLSサーバー証明書
keyCertSign 証明書への署名に使う CA証明書
cRLSign CRLへの署名に使う CA証明書

証明書の具体的な目的を示す。

extensions.cnf
extendedKeyUsage=serverAuth
値 役割
serverAuth TLSサーバー証明書として使える
clientAuth TLSクライアント証明書として使える

この証明書に含まれる公開鍵を識別するための値。

extensions.cnf
subjectKeyIdentifier=hash

公開鍵の識別や、 証明書チェーン を構築するときの証明書候補の選択に使われる。


この証明書に署名したCAの鍵を識別するための値。

extensions.cnf
authorityKeyIdentifier=keyid,issuer

発行元CAの subjectKeyIdentifier と対応させることで、証明書チェーンを構築するときの発行元候補を選びやすくする。


証明書が有効なDNS名やIPアドレスを示す。

extensions.cnf
subjectAltName=DNS:www.example.test,IP:172.16.4.1
要素 例 役割
DNS DNS:www.example.test 有効なDNS名を指定する
IP IP:172.16.4.1 有効なIPアドレスを指定する




  • x509v3_config X.509 v3拡張の設定形式。basicConstraints、keyUsage、extendedKeyUsage、subjectAltName など。

  • openssl-req CSR作成、自己署名証明書作成、-addext など。

  • openssl-x509 証明書の表示、変換、署名、拡張確認など。

  • openssl-ca CAとして証明書へ署名する処理。