見出し画像

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:
         ...

出力内容の解説

  1. Certificate:

    • 証明書データの開始を表します。

  2. Version:

    • 証明書のバージョンを示します。通常、X.509 Version 3 (0x2) が使用されます。

  3. Serial Number:

    • 証明書を一意に識別する番号です。

  4. Signature Algorithm:

    • 署名アルゴリズムが記載されています。この例では sha256WithRSAEncryption が使用されています。

  5. Issuer:

    • 証明書を発行した認証局 (CA) の情報です。

      • C=US: 国コード (Country)

      • O=Example Corp: 組織名 (Organization)

      • CN=Example Root CA: コモンネーム (Common Name)

  6. Validity:

    • 証明書の有効期間を表します。

      • Not Before: 証明書の有効開始日時。

      • Not After: 証明書の有効終了日時。

  7. Subject:

    • 証明書の対象(サーバーやドメイン名)の情報です。ここでは www.example.com が対象です。

  8. Subject Public Key Info:

    • 公開鍵に関する情報が含まれています。

      • Public Key Algorithm: この例では RSA 公開鍵アルゴリズム(2048ビット)。

      • ModulusExponent は公開鍵の詳細です。

  9. X509v3 extensions:

    • 証明書に付加された拡張フィールドです。

      • Basic Constraints: この証明書が CA (認証局) かどうかを示します(例: CA:FALSE)。

      • Key Usage: 証明書の用途(例: デジタル署名、暗号化)。

      • Subject Alternative Name: サーバーの別名(例: example.org)。

  10. Signature Algorithm:

    • 証明書全体を署名する際に使用された署名アルゴリズムとそのデータ。


コマンドの活用ポイント

  • 有効期限の確認: Validity セクションを確認することで、証明書が有効かどうか簡単に確認できます。

  • 発行者情報と対象の確認: Issuer や Subject の内容をチェックし、信頼できる発行者から適切に発行されているかを検証します。

  • 公開鍵の確認: 公開鍵情報を確認することで、暗号化に使用される鍵が適切に設定されているかを判断できます。

  • 拡張フィールドの検証: 証明書の用途や対応するドメインを確認するために X509v3 extensions を活用します。


まとめ

openssl x509 コマンドは、証明書の詳細を確認するための非常に便利なツールです。特に、-text -noout を組み合わせることで、視覚的にわかりやすい形式で内容を把握できます。SSL/TLS 設定のトラブルシューティングやセキュリティ確認に役立つので、ぜひ活用してください。

いいなと思ったら応援しよう!