Skip to main content

カスタムエクステンション付き証明書プロファイルを作成する

証明書でカスタムエクステンションを使用するには、まずカスタムエクステンションデータ用のテンプレートを定義する証明書プロファイルの作成が必要です。

プライベート認証局(CA)から発行されたユーザー証明書、デバイス証明書、サーバー証明書向けのカスタムエクステンション付きプロファイルを DigiCert ONE DigiCert Private CA 内で作成できます。

プロファイルを作成する

通常の手順に従って証明書プロファイルを作成し、以下で説明するカスタムエクステンションに対応するベーステンプレートと登録方法のうちいずれか 1 つを選択できるようにします。

  1. Trust Lifecycle Manager のメインメニューから、[Policies > Certificate profiles]を選択します。

  2. 上部の[テンプレートからプロファイルを作成]ボタンを選択します。

  3. 証明書プロファイル作成のベースとして、次の証明書テンプレートのうちいずれか 1 つを選択します。

    • Generic Device Certificate

    • Generic Private Server Certificate

    • Generic User Certificate

  4. 初期画面で、基本プロファイルと証明書プロパティを定義し、発行 CA、登録方法、認証方法(該当する場合)を選択します。

  5. [エクステンション]画面で、この証明書プロファイルの[カスタムエクステンション]を定義し、検証します。この手順の詳細については、以下の「カスタムエクステンションを定義する」を参照してください。

  6. カスタムエクステンションが検証チェックを通過すれば、[次へ]を選択して残りのプロファイル画面を進み、[作成]を選択して新規プロファイルを保存できます。

カスタムエクステンションを定義する

プロファイルの[エクステンション]画面にある[カスタムエクステンション]セクションでカスタム証明書エクステンションを定義します。

  • 左側のウィンドウに JSON 形式のカスタムエクステンションテンプレートを追加します。ガイドとして例を示します。

  • [検証]を選択して JSON が有効であることを確認します。

    • 有効な場合、動的なカスタムエクステンションフィールドが右側のウィンドウに追加され、設定を完了できます。

    • 無効な場合、詳細についてはウィンドウ下部の検証エラーを確認します。JSON を修正して、再度お試しください。

  • 現在の JSON を消去して最初からやり直したい場合は、[消去]を選択します。

以下に示すカスタムエクステンションの JSON テンプレートの例を考慮します。

1. カスタム証明書エクステンションの JSON テンプレート
{
    "oid": "1.2.3.4",
    "critical": true,
    "template": {
      "type": "SEQUENCE",
      "structure": [
        {
          "type": "PrintableString",
          "value": "${string_value}"
        },
        {
          "type": "BOOLEAN",
          "value": "${boolean_value}"
        },
        {
          "type": "INTEGER",
          "value": 1
        }
      ]
    }
}

この例では、オブジェクト識別子(OID)を「1.2.3.4」、重要度を「true」に設定した単一のカスタムエクステンションを定義しています。この template では、カスタムエクステンションを異なるデータ型のフラットなフィールドの集合からなる構造で、データ型が「SEQUENCE」のものと定義しています。

注記

カスタムエクステンションのデータ型とテンプレートの詳細については、「カスタムエクステンションのデータ型とテンプレート例」を参照してください。

次のフィールドを使用して、独自の作成カスタムエクステンション用の JSON テンプレートを作成します。

  • oid: カスタムエクステンションの OID をドット区切りの整数列(ノード)として定義します。標準的な X.509 証明書エクステンションで使用されるため、2.5.29 で始まる OID は避けます。

  • critical: このブール値フィールドを「true」(重要)または「false」(重要でない)に設定することで、カスタムエクステンションの重要度を示します。

  • template: カスタムエクステンションに含まれる可能性のあるデータを定義します。

    • type: カスタムエクステンションの全体的なデータ型定義。

    • structure: 「SEQUENCE」、「SEQUENCE OF」、または「SET OF」以外のデータ型で使用され、その他のデータ型の集合からなるデータ構造を定義します。

    • value: 「SEQUENCE」、「SEQUENCE OF」、または「SET OF」以外のデータ型で使用され、登録時に入力されるフィールドのプレースホルダー名(最も一般的)またはプロファイルから発行される証明書すべてに適用される固定値を指定します。エクステンションフィールドにおけるプレースホルダー名を次の形式で指定します。 ${name}.

      注意

      プレースホルダー名は、すべてのフィールドのデータ型が同じである限り、複数のフィールドで再使用できます。プレースホルダー名は、登録時に各エクステンションフィールドの値を割り当てる対象になります。同じプレースホルダー名のフィールドにはすべて同じ値が割り当てられます。

      プレースホルダー名には、英数字またはアンダースコアを混在したものが含まれていても差し支えありません。ドットを含めることはできません。

テンプレートを入力後、[検証]ボタンを選択して JSON を検証します。検証エラーが発生した場合は修正し、必要に応じて再試行します。

検証が完了すると、動的なカスタムエクステンションフィールドが右側のウィンドウに追加され、エクステンション設定を完了できます。

複数のカスタムエクステンションを定義する

複数のカスタムエクステンションを定義するには、証明書プロファイルの「カスタムエクステンション」セクションで JSON 配列を使用します。例:

2. 2 つのカスタムエクステンションが定義された証明書の JSON テンプレート
[
    {
        "oid": "1.2.8.8",
        "critical": true,
        "template": {
          "type": "INTEGER",
          "value": "${user_id}"
        }
    },
    {
        "oid": "1.2.8.9",
        "critical": false,
        "template": {
          "type": "PrintableString OPTIONAL",
          "value": "${user_work_location}"
        }
    }
]

この例では、2 つの異なるカスタムエクステンションを定義しています。

  1. 重要度が「critical」で OID が「1.2.8.8」のエクステンション。このエクステンションは単純な整数値で構成され、プレースホルダー名は「user_id」です。

  2. 重要度が「non-critical」で OID が「1.2.8.9」のエクステンション。このエクステンションは単純な文字列値で構成され、プレースホルダー名は「user_work_location」です。データ型の後に OPTIONAL という単語があることに注意してください。これは、フィールドがオプションであることを示しているため、登録時に値の指定は不要です。

通常どおり、左側のウィンドウでカスタムエクステンションを定義したら、[検証]を選択して JSON を検証し、右側のウィンドウで[エクステンションの設定を確定]します。

注記

カスタムエクステンションのデータ型とテンプレートの詳細については、「カスタムエクステンションのデータ型とテンプレート例」を参照してください。

エクステンションの設定を確定する

カスタムエクステンションテンプレートを[検証]ボタンで検証すると、追加設定が必要なエクステンションフィールドがあればプレースホルダー名別に右側のウィンドウに一覧表示されます。

これらのエクステンションフィールドの設定を完了するには、証明書の登録または認証時における値の設定方法を指定する必要があります。固定値が設定されたフィールドには追加設定は不要です。

右側のウィンドウに表示された以下の入力項目を使用して、動的なカスタムエクステンションフィールドの設定を完了します。

  • Web 表示におけるフィールドラベル: Web フォームでカスタムエクステンションフィールドを識別するためのユーザーフレンドリーなテキストラベルを追加します。この入力項目は、Web ベースの登録方法用に設定されたプロファイルでのみ表示されます。

  • フィールドの値のソース: 証明書の登録または認証プロセスでフィールドの値を設定する方法として提供されているオプションのいずれか 1 つを選択します。ここでのオプションは、証明書プロファイルについて選択した登録方法または認証方法により異なります。可能なオプションは次のとおりです。

    • Active Directory の属性: Active Directory(AD)から値を取得します。これは、Microsoft Autoenrollment の登録方法によって設定されたプロファイルのデフォルトで選択するオプションです。追加のドロップダウンが表示され、値を取得する特定の AD の属性を選択できます。

    • REST 申請: JSON 申請本文のプレースホルダー名を指定することで、Trust Lifecycle Manager REST API 経由で値を設定します。詳細は「REST API を使用してカスタムエクステンション付き証明書を申請する」を参照してください。

    • 管理者による入力/アップロード: Trust Lifecycle Manager のユーザーインターフェース経由で登録申請を送信する際に、管理者は値の入力を求められます(たとえば、シートを登録する場合など)。

    • ユーザーによる入力: Trust Lifecycle Manager のユーザーインターフェース経由で登録を確認する際に、ユーザーは値の入力を求められます(たとえば、登録コードを使用して新しい証明書を認証し、取得する場合など)。

    • CSR から: 標準的な X.509 オブジェクト識別子(OID)で特定される CSR 内の別のフィールドから値が取得されます。このオプションを選択すると、追加入力欄が表示され、値を取得する CSR フィールドの OID を入力できるようになります。たとえば、カスタムエクステンションフィールドの値として CSR から国名を割り当てるには、OID「2.5.4.6」を入力します。

    • EST 申請: セキュアトランスポート経由の登録(EST)プロトコル経由で DigiCert に提出された CSR 内の値を指定します。このオプションを指定した場合、「From CSR」オプションの場合と同様に、値を取得する CSR フィールドの OID を入力する必要があります。

    • SCEP 申請: 簡易証明書登録プロトコル(SCEP)経由で DigiCert に提出された CSR 内の値を指定します。このオプションを指定した場合、「From CSR」オプションの場合と同様に、値を取得する CSR フィールドの OID を入力する必要があります。

    • SAML アサーション: SAML IdP を認証方法として使用するプロファイルの場合、SAML プロバイダから値を取得します。エクステンションフィールドの名前は、SAML プロバイダが SAML アサーション内で送信する内容と一致する必要があります。

次の手順

カスタムエクステンションを含む証明書プロファイルを作成したら、選択した登録方法を使用してそのプロファイルの証明書を登録する準備が整います。

Trust Lifecycle Manager REST API を使用してカスタムエクステンションフィールドに値を指定する方法については、「REST API を使用してカスタムエクステンション付き証明書を申請する」を参照してください。

UI ベースの登録方法では、申請を送信する管理者またはそれを確認するユーザーに対して、値の指定が必要なカスタムエクステンションが示されます。