Интерфейс IX509Extension (certenroll.h)

Интерфейс IX509Extension можно использовать для определения расширения для запроса сертификата. Расширения сертификатов предоставляют сведения об использовании ключа, политиках и ограничениях сертификатов, альтернативных формах имен и многое другое. Расширение состоит из идентификатора объекта (OID), логического значения, определяющего, является ли расширение критическим, и массива байтов, содержащего значение расширения, как показано в следующем синтаксисе ASN.1 .


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

API регистрации сертификатов содержит следующие интерфейсы, производные от IX509Extension, которые можно использовать для создания различных расширений, наиболее часто используемых в инфраструктуре открытых ключей (PKI), которая используется на сервере сертификатов Windows.

Примечание Не используйте базовый интерфейс IX509Extension для представления любого расширения, которое может быть представлено одним из следующих интерфейсов. Поведение регистрации не определено, если соответствующий интерфейс не используется.

 
Интерфейс Описание
IX509ExtensionAlternativeNames Определяет расширение AlternativeNames , содержащее одну или несколько альтернативных форм имен для субъекта запроса сертификата.
IX509ExtensionAuthorityKeyIdentifier Определяет расширение AuthorityKeyIdentifier, которое позволяет идентифицировать открытый ключцентра сертификации, соответствующий закрытому ключу центра сертификации, который подписал выданный сертификат. Он используется программным обеспечением для создания пути к сертификату на сервере Windows server для поиска сертификата центра сертификации.
IX509ExtensionBasicConstraints Определяет расширение BasicConstraints , которое определяет, можно ли использовать сущность в качестве центра сертификации, и, если да, количество подчиненных центров сертификации, которые могут существовать под ним в цепочке сертификатов.
IX509ExtensionCertificatePolicies Определяет расширение CertificatePolicies , которое определяет политики, в соответствии с которыми был выдан сертификат, и цели, для которых его можно использовать.
IX509ExtensionEnhancedKeyUsage Определяет расширение EnhancedKeyUsage , которое определяет одно или несколько вариантов использования открытого ключа, содержащегося в сертификате.
IX509ExtensionKeyUsage Определяет расширение KeyUsage , которое ограничивает операции, которые могут выполняться открытым ключом, содержащимся в сертификате.
IX509ExtensionMSApplicationPolicies Определяет расширение MSApplicationPolicies , которое может использоваться приложением для фильтрации сертификатов на основе разрешенного использования. Разрешенные варианты использования определяются идентификаторами объектов (OID).
IX509ExtensionSmimeCapabilities Определяет расширение SmimeCapabilities , которое определяет возможности расшифровки получателя электронной почты, чтобы отправитель сообщения смог выбрать наиболее безопасный алгоритм шифрования, поддерживаемый обеими сторонами.
IX509ExtensionSubjectKeyIdentifier Определяет расширение SubjectKeyIdentifier , которое различает несколько открытых ключей, хранящиеся у владельца сертификата. Значением расширения обычно является хэш SHA-1 ключа.
IX509ExtensionTemplate Определяет расширение шаблона , идентифицирующее шаблон версии 2, используемый при выдаче или продлении сертификата.
IX509ExtensionTemplateName Определяет расширение TemplateName , которое определяет шаблон версии 1, используемый при выдаче или продлении сертификата.
 

Большинство расширений, которые можно создать с помощью предыдущих интерфейсов, определяются стандартом синтаксиса X.509 версии 3. Чтобы создать расширения версии 3, для которых корпорация Майкрософт не предоставляет пользовательский объект, можно использовать интерфейс IX509Extension . Эти расширения указаны в следующей таблице.

Расширение или идентификатор объекта Описание
AuthorityInformationAccess(XCN_OID_AUTHORITY_INFO_ACCESS) Определяет, как получить доступ к информации и службам центра сертификации. Значение расширения содержит последовательность URI.
CrlDistributionPoints(XCN_OID_CRL_DIST_POINTS) Содержит универсальный код ресурса (URI) базового списка отзыва сертификатов (CRL).
FreshestCRL(XCN_OID_FRESHEST_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 для определения частных расширений, содержащих информацию, уникальную для определенного сообщества.

Расширения добавляются в структуру Attributes запроса PKCS #10 и в структуру TaggedAttributes запроса CMC. Чтобы добавить расширения в любой формат запроса, необходимо сначала добавить их в коллекцию IX509Extensions и использовать коллекцию для инициализации объекта IX509AttributeExtensions . Дополнительные сведения см. в разделах Расширения PKCS #10 и Расширения CMC .

Наследование

Интерфейс IX509Extension наследуется от интерфейса IDispatch . IX509Extension также имеет следующие типы элементов:

Методы

Интерфейс IX509Extension содержит следующие методы.

 
IX509Extension::get_Critical

Указывает и извлекает логическое значение, определяющее, является ли расширение сертификата критическим. (Получить)
IX509Extension::get_ObjectId

Извлекает идентификатор объекта (OID) для расширения.
IX509Extension::get_RawData

Извлекает массив байтов, содержащий значение расширения. (IX509Extension.get_RawData)
IX509Extension::Initialize

Инициализирует объект IX509Extension, используя идентификатор объекта (OID) и массив байтов, содержащий расширение в кодировке Distinguished Encoding Rules (DER).
IX509Extension::p ut_Critical

Указывает и извлекает логическое значение, определяющее, является ли расширение сертификата критическим. (Put)

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header certenroll.h

См. также раздел

API регистрации сертификатов

ICryptAttribute

IDispatch

IX509AttributeExtensions

IX509Extensions