Поделиться через


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

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


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

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

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

 
Интерфейс Описание
IX509ExtensionAlternativeNames Определяет расширение AlternativeNames, содержащее одну или несколько альтернативных форм имен для субъекта запроса на сертификат.
IX509ExtensionAuthorityKeyIdentifier Определяет расширение AuthorityKeyIdentifier, позволяющее определить центр сертификации открытый ключ, соответствующий центру сертификации закрытого ключа подписав выданный сертификат. Он используется путем создания программного обеспечения на сервере Windows для поиска сертификата центра сертификации.
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 X.509. Чтобы создать расширения версии 3, для которых корпорация Майкрософт не предоставляет пользовательский объект, можно использовать интерфейс IX509Extension. Эти расширения определены в следующей таблице.

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

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

Расширения добавляются в структуру атрибутов запроса 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) и массива байтов, содержащего расширение в кодировке DER.
IX509Extension::p ut_Critical

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2008 [только классические приложения]
целевая платформа Виндоус
заголовка certenroll.h

См. также

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

ICryptAttribute

IDispatch

IX509AttributeExtensions

IX509Extensions