IX509Extension インターフェイス (certenroll.h)

IX509Extension インターフェイスを使用して、証明書要求の拡張機能を定義できます。 証明書拡張機能は、キーの使用法、証明書のポリシーと制約、代替名フォームなどの情報を提供します。 拡張機能は 、オブジェクト識別子 (OID)、拡張がクリティカルであるかどうかを識別するブール値、および次の 抽象構文表記 1 (ASN.1) 構文で示すように拡張値を含むバイト配列で構成されます。


Extension ::= SEQUENCE 
{
   extnId              OBJECT IDENTIFIER,
   critical            BOOLEAN DEFAULT FALSE,
   extnValue           OCTETSTRING
}

証明書登録 API には、 IX509Extension から派生した次のインターフェイスが含まれています。このインターフェイスを使用すると、Windows 証明書サーバーに依存する公開キー インフラストラクチャ (PKI) で最もよく使用されるさまざまな拡張機能を作成できます。

メモIX509Extension 基本インターフェイスを使用して、次のいずれかのインターフェイスで表すことができる拡張機能を表さないでください。 適切なインターフェイスが使用されていない場合、登録動作は未定義です。

 
インターフェイス 説明
IX509ExtensionAlternativeNames 証明書要求のサブジェクトの代替名フォームを 1 つ以上含む AlternativeNames 拡張機能を定義します。
IX509ExtensionAuthorityKeyIdentifier 発行された証明書に署名した証明機関秘密キーに対応する証明機関の公開キーを識別できるようにする AuthorityKeyIdentifier 拡張機能を定義します。 これは、証明機関の証明書を検索するために、Windows サーバー上の証明書パス構築ソフトウェアによって使用されます。
IX509ExtensionBasicConstraints エンティティを証明機関として使用できるかどうかを識別する BasicConstraints 拡張機能を定義し、使用できる場合は、証明書チェーンの下に存在できる下位証明機関の数を定義します。
IX509ExtensionCertificatePolicies 証明書が発行されたポリシーと使用できる目的を識別する CertificatePolicies 拡張機能を定義します。
IX509ExtensionEnhancedKeyUsage 証明書に含まれる公開キーの 1 つ以上の用途を識別する EnhancedKeyUsage 拡張機能を定義します。
IX509ExtensionKeyUsage 証明書に含まれる公開キーによって実行できる操作を制限する KeyUsage 拡張機能を定義します。
IX509ExtensionMSApplicationPolicies 許可された使用に基づいて証明書をフィルター処理するためにアプリケーションで使用できる MSApplicationPolicies 拡張機能を定義します。 許可される使用は、オブジェクト識別子 (OID) によって識別されます。
IX509ExtensionSmimeCapabilities 電子メール受信者の暗号化解除機能を識別する SmimeCapabilities 拡張機能を定義し、電子メールの送信者が、両当事者がサポートする最も安全な暗号化アルゴリズムを選択できるようにします。
IX509ExtensionSubjectKeyIdentifier 証明書所有者が保持する複数の公開キーを区別する SubjectKeyIdentifier 拡張機能を定義します。 この拡張機能の値は、通常は、キーの SHA-1 ハッシュです。
IX509ExtensionTemplate 証明書 を発行 または更新するときに使用するバージョン 2 テンプレートを識別するテンプレート拡張機能を定義します。
IX509ExtensionTemplateName 証明書の発行または更新時に使用するバージョン 1 のテンプレートを識別する TemplateName 拡張機能を定義します。
 

上記のインターフェイスを使用して作成できる拡張機能のほとんどは、バージョン 3 X.509 構文標準で定義されています。 Microsoft がカスタム オブジェクトを提供しないバージョン 3 拡張機能を作成するには、 IX509Extension インターフェイスを 使用できます。 これらの拡張機能は、次の表で示されています。

Extension/OID 説明
AuthorityInformationAccess(XCN_OID_AUTHORITY_INFO_ACCESS) 証明機関の情報とサービスにアクセスする方法を識別します。 拡張値には、URI のシーケンスが含まれています。
CrlDistributionPoints(XCN_OID_CRL_DIST_POINTS) 基本 証明書失効リスト (CRL) の URI を格納します。
FreshestCRL(XCN_OID_FRESHEST_CRL) デルタ CRL の URI を格納します。 この拡張機能と CrlDistributionPoints 拡張機能には、同じ ASN.1 構文が使用されます。
NameConstraints(XCN_OID_NAME_CONSTRAINTS) 証明書階層内の証明書のすべてのサブジェクト名を配置する必要がある名前空間を識別します。 この拡張機能は、証明機関の証明書でのみ使用されます。
PolicyConstraints(XCN_OID_POLICY_CONSTRAINTS) ポリシー マッピングを禁止するか、階層内の各証明書に許容可能なポリシー識別子を含めることを要求することによって、パス検証を制限します。
PolicyMappings(XCN_OID_POLICY_MAPPINGS) 発行元証明機関のポリシーに対応する下位証明機関のポリシーを識別します。 拡張値には、オブジェクト識別子で表される証明機関と下位証明機関ポリシー マッピングを発行するシーケンスが含まれます。
PrivateKeyUsagePeriod(XCN_OID_PRIVATEKEY_USAGE_PERIOD) 秘密キーの有効期間は、キーが関連付けられている証明書とは異なる有効期間を指定します。
SubjectDirectoryAttributes(XCN_OID_SUBJECT_DIR_ATTRS) 証明書のサブジェクトに関する国籍などの識別属性を伝達します。 この拡張機能の値は、OID と値のペアが連続する形になります。
 

最後に、 IX509Extension インターフェイスを使用して、特定のコミュニティに固有の情報を含むプライベート拡張機能を定義できます。

拡張機能は、PKCS #10 要求の Attributes 構造体と CMC 要求の TaggedAttributes 構造体に追加されます。 いずれかの要求形式に拡張機能を追加するには、まずそれらを IX509Extensions コレクションに追加し、 コレクションを使用して IX509AttributeExtensions オブジェクトを初期化する必要があります。 詳細については、 PKCS #10 拡張機能CMC 拡張機能 に関するトピックを参照してください。

継承

IX509Extension インターフェイスは、IDispatch インターフェイスから継承されます。 IX509Extension には、次の種類のメンバーもあります。

メソッド

IX509Extension インターフェイスには、これらのメソッドがあります。

 
IX509Extension::get_Critical

証明書拡張機能が重要かどうかを識別するブール値を指定して取得します。 (Get)
IX509Extension::get_ObjectId

拡張機能のオブジェクト識別子 (OID) を取得します。
IX509Extension::get_RawData

拡張値を含むバイト配列を取得します。 (IX509Extension.get_RawData)
IX509Extension::Initialize

オブジェクト識別子 (OID) と、Distinguished Encoding Rules (DER) でエンコードされた拡張機能を含むバイト配列を使用して、IX509Extension オブジェクトを初期化します。
IX509Extension::p ut_Critical

証明書拡張機能が重要かどうかを識別するブール値を指定して取得します。 (Put)

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー certenroll.h

こちらもご覧ください

証明書の登録 API

ICryptAttribute

IDispatch

IX509AttributeExtensions

IX509Extensions