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 インターフェイスを使用できます。 これらの拡張機能を次の表に示します。

拡張機能/OID 形容
AuthorityInformationAccess(XCN_OID_AUTHORITY_INFO_ACCESS) 証明機関の情報とサービスにアクセスする方法を識別します。 拡張値には、URI のシーケンスが含まれています。
CrlDistributionPointsの (XCN_OID_CRL_DIST_POINTS) ベース 証明書失効リスト (CRL) の URI が含まれています。
FreshestCRL(XCN_OID_FRESHEST_CRL) デルタ CRL の URI を格納します。 この拡張機能には同じ ASN.1 構文が使用され、CrlDistributionPoints 拡張機能が使用されます。
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 要求の 属性 構造体と、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) と、識別エンコード規則 (DER) でエンコードされた拡張子を含むバイト配列を使用して、IX509Extension オブジェクトを初期化します。
IX509Extension::p ut_Critical の

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

必要条件

要件 価値
サポートされる最小クライアント Windows Vista [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2008 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー certenroll.h

関連項目

証明書登録 API の

ICryptAttribute

IDispatch の

IX509AttributeExtensions

IX509Extensions の