OpenSSLコマンドで証明書情報を確認する方法
SSL/TLS 証明書の中身を確認する際に、便利でよく使われるコマンドが openssl x509 です。このコマンドを使えば、証明書の詳細な情報をテキスト形式で表示し、その構造や属性を簡単に確認できます。以下では、このコマンドの使い方や出力例、その内容についてまとめていきます。
基本的なコマンドの構文
openssl x509 -in <証明書ファイル> [オプション]
例として、certificate.crt という証明書ファイルを解析する場合、以下のように実行します:
openssl x509 -in certificate.crt -text -noout
主なオプションの説明
-in <証明書ファイル>: 読み込む証明書ファイルを指定します。ここでは certificate.crt を使用します。
-text: 証明書の内容を詳細なテキスト形式で表示します。
-noout: 証明書本体のバイナリデータを出力しません。純粋に情報のみが表示されます。
-issuer: 証明書を発行した認証局(Issuer)の情報を取得します。
-subject: 証明書の対象(Subject)に関する情報を取得します。
-serial: 証明書のシリアル番号を表示します。
コマンド実行例と出力サンプル
次に、openssl x509 -in certificate.crt -text -noout を実行した場合の出力例を見てみましょう:
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
01:23:45:67:89:ab:cd:ef:12:34:56:78:9a:bc:de:ff
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, O=Example Corp, CN=Example Root CA
Validity
Not Before: Jan 1 00:00:00 2024 GMT
Not After : Jan 1 00:00:00 2025 GMT
Subject: C=US, O=Example Corp, CN=www.example.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
00:cc:10:81:29:db:6c:8f:6f:41:e2:91:a3:6d:1d:
...
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
X509v3 Key Usage:
Digital Signature, Key Encipherment
X509v3 Subject Alternative Name:
DNS:www.example.com, DNS:example.org
Signature Algorithm: sha256WithRSAEncryption
b2:7c:33:64:15:6f:92:76:36:45:5b:29:65:4e:9f:7d:
...
出力内容の解説
Certificate:
証明書データの開始を表します。
Version:
証明書のバージョンを示します。通常、X.509 Version 3 (0x2) が使用されます。
Serial Number:
証明書を一意に識別する番号です。
Signature Algorithm:
署名アルゴリズムが記載されています。この例では sha256WithRSAEncryption が使用されています。
Issuer:
証明書を発行した認証局 (CA) の情報です。
C=US: 国コード (Country)
O=Example Corp: 組織名 (Organization)
CN=Example Root CA: コモンネーム (Common Name)
Validity:
証明書の有効期間を表します。
Not Before: 証明書の有効開始日時。
Not After: 証明書の有効終了日時。
Subject:
証明書の対象(サーバーやドメイン名)の情報です。ここでは www.example.com が対象です。
Subject Public Key Info:
公開鍵に関する情報が含まれています。
Public Key Algorithm: この例では RSA 公開鍵アルゴリズム(2048ビット)。
Modulus と Exponent は公開鍵の詳細です。
X509v3 extensions:
証明書に付加された拡張フィールドです。
Basic Constraints: この証明書が CA (認証局) かどうかを示します(例: CA:FALSE)。
Key Usage: 証明書の用途(例: デジタル署名、暗号化)。
Subject Alternative Name: サーバーの別名(例: example.org)。
Signature Algorithm:
証明書全体を署名する際に使用された署名アルゴリズムとそのデータ。
コマンドの活用ポイント
有効期限の確認: Validity セクションを確認することで、証明書が有効かどうか簡単に確認できます。
発行者情報と対象の確認: Issuer や Subject の内容をチェックし、信頼できる発行者から適切に発行されているかを検証します。
公開鍵の確認: 公開鍵情報を確認することで、暗号化に使用される鍵が適切に設定されているかを判断できます。
拡張フィールドの検証: 証明書の用途や対応するドメインを確認するために X509v3 extensions を活用します。
まとめ
openssl x509 コマンドは、証明書の詳細を確認するための非常に便利なツールです。特に、-text -noout を組み合わせることで、視覚的にわかりやすい形式で内容を把握できます。SSL/TLS 設定のトラブルシューティングやセキュリティ確認に役立つので、ぜひ活用してください。