証明書サービス Web 登録ページのカスタマイズ
Certificate Services には、証明書の要求に使用できる Web 登録ページが用意されています。 管理者は、Web 登録ページで表示できる項目の一部をカスタマイズできます。ただし、変更を加える前に、Web 登録ページと Web スクリプトについて理解しておく必要があります。 Web スクリプトの詳細については、「 スクリプト作成」を参照してください。
[組織]、[組織単位]、[地域]、[都道府県]、[国/地域] の [識別名] フィールドの既定値は、証明書サービスのインストール時に 証明機関 (CA) に指定された値です。 これらの既定値は Web ページに表示され、証明書の登録プロセス中にユーザーが変更できます。 ただし、他の既定値を Web ページに表示する場合は、Certdat.inc ファイル (パス \WindowsDirectory\System32\Certsrv\) を編集できます。具体的には、カスタマイズのために提供される次の変数にカスタム値を割り当てることができます。
変数 | 説明 |
---|---|
sDefaultCompany | 既定の会社 ([X.509 組織] フィールドとして証明書要求に表示されます)。 |
sDefaultOrgUnit | 既定の部署 ([X.509 組織単位] フィールドとして証明書要求に表示されます)。 |
sDefaultLocality | 既定の市区町村 ([X.509 Location] フィールドとして証明書要求に表示されます)。 |
sDefaultState | 既定の州/都道府県 (X.509 State フィールドとして証明書要求に表示されます)。 |
sDefaultCountry | 既定の国/地域 (X.509 国/地域フィールドとして証明書要求に表示されます)。 |
nPendingTimeoutDays | ユーザーが要求された後、保留中の証明書を取得できる日数。 |
Certdat.inc ファイルで他の変数を変更しないでください。
次の例では、既定の組織単位を "Marketing" に設定します。
sDefaultOrgUnit="Marketing"
さらに、Certrqtp.inc ファイルを編集して、ユーザーが使用できる 証明書テンプレート または種類を追加、変更、または削除できます。 これらのテンプレートと型、および関連情報は、rgAvailReqTypes(m,5) と呼ばれる次元配列に含まれています。
この配列は、すべての Visual Basic Scripting Edition 配列と同様に 0 から始まります。その結果、配列の最初の次元 m は m+ 1 項目にメモリを割り当てます。 したがって、Web ページをカスタマイズする際に rgAvailReqTypes 配列内の項目数を変更する必要がある場合は、 m ディメンションを必要な項目の合計数より 1 小さく設定します。 たとえば、7 つの証明書テンプレートがある場合は、次の例に示すように rgAvailReqTypes の宣言を変更します。
Dim rgAvailReqTypes(6,5)
配列の 2 番目の次元は、常に値 5 を持ち、各項目を構成する 6 つのフィールドを割り当てます。 これら 6 つのフィールドは、証明書テンプレートまたは種類、このテンプレートまたは種類に関連付けられている表示名、およびテンプレートに Secure/Multipurpose Internet Mail Extensions (S/MIME) が必要かどうかを表します。
これらのフィールドのうち、どのフィールドにアクセスされているかを理解しやすくするために、Certrqtp.inc には、フィールド値を設定するときに使用できる次の定数も用意されています。
常時 | 説明 |
---|---|
FIELD_OID | (スタンドアロン CA に適用)アイテムの最初のフィールドのインデックス。は、証明書の種類の オブジェクト識別子 (OID) を表します。 |
FIELD_TEMPLATE | (エンタープライズ CA に適用)アイテムの最初のフィールドのインデックス。は証明書テンプレートを表します。 |
FIELD_FRIENDLYNAME | アイテムの 2 番目のフィールドのインデックス。は、最初のフィールドのアイテムの表示名 (登録時にユーザーに表示される) を表します。 |
FIELD_CSPLIST | アイテムの 3 番目のフィールドのインデックス。 テンプレートで許可される 暗号化サービス プロバイダー 名の一覧。 リスト内の各名前は疑問符 (?) で区切ります。 |
FIELD_CSPLIST2 | アイテムの 4 番目のフィールドのインデックス。 テンプレートで許可される 暗号化サービス プロバイダー 名のセカンダリ リスト。 リスト内の各名前は疑問符 (?) で区切ります。 この一覧には、別の既定値が用意されています。 |
FIELD_EXPORTABLE | アイテムの 5 番目のフィールドのインデックス。 テンプレートでキーをエクスポート可能にするかどうかを指定するかどうかを示します。 このフィールドに "True" が含まれている場合、キーはエクスポート可能です。 このフィールドに "False" が含まれている場合、キーはエクスポートできません。 |
FIELD_NEEDS_SMIME_CAPABILITIES | この定数はサポートされていません。 |
たとえば、次の式では、1.3.6.1.5.5.7.3.2 の OID を最初の項目の最初のフィールドに割り当て、最初の項目の 2 番目のフィールドに "Web ブラウザー証明書" を割り当てます (0 の配列値は最初の項目にインデックスを付けます)。
rgAvailReqTypes(0, FIELD_OID) = "1.3.6.1.5.5.7.3.2"
rgAvailReqTypes(0, FIELD_FRIENDLYNAME) = "Web Browser Certificate"
これらの割り当ての結果として、登録時に Web ブラウザー証明書 というテキストがユーザーに表示され、ユーザーが Web ブラウザー証明書を選択した場合、 証明書要求 には OID 1.3.6.1.5.5.7.3.2 が含まれます。
Certrqtp.inc ファイルには、証明書テンプレートまたは種類の表示名に使用される定数も含まれています。 次の例は、形式を示しています。
' Strings for localization.
Const L_WebBrowserCert_Text="Web Browser Certificate"
Const L_EmailProtectionCert_Text="E-Mail Protection Certificate"
Const L_UserTemplateCert_Text="User Certificate"
これらの定数は Certrqtp.inc ファイル内のブロックで定義されており、このグループ化により、各定数にカスタム値を割り当てるのが簡単になります。 これは、国際バージョンの Web ページの表示名をローカライズする場合に特に役立ちます。
最後に、Certrqtp.inc ファイルには、rgAvailReqTypes 配列内の証明書テンプレートまたは型の数を表す変数が含まれています。 配列の m 次元とは対照的に、nAvailReqTypes 変数の値を、インストールで使用する証明書テンプレートまたは型の実際の数に設定します。この値は m+1 以下にする必要があります。 Certrqtp.inc ファイルの先頭付近で宣言されていますが、nAvailReqTypes には rgAvailReqTypes 配列が設定された後に値が割り当てられるため、配列で実際に使用されている要素の数を簡単に確認できます。 nAvailReqTypes 値は、Web 登録ページの他の場所のイテレーションで使用されるため、この変数には、ユーザーに表示する証明書テンプレートまたは型の数が正確に反映されていることが重要です。
証明書 テンプレート と型を Certrqtp.inc ファイルに追加するだけでは、ユーザーがそれらの特性を持つ証明書を取得できるとは限らないことに注意してください。CA は、指定された証明書テンプレートまたは種類の証明書を発行する権限を持っている必要があります。
インストールでは、証明書を要求および受信するための独自のアプリケーションまたは Web ページを作成できます。 ICEnroll4 オブジェクトと ICertRequest2 オブジェクトを使用すると、プログラマまたはスクリプターは証明書要求アプリケーションをビルドできます。
スマート カードで証明書の発行を要求するには、 スマート カード登録制御を使用できます。 詳細とコード例については、 ISCrdEnr を参照してください。