Интерфейс IX509Extension (certenroll.h)
Интерфейс IX509Extension можно использовать для определения расширения для запроса сертификата. Расширения сертификатов предоставляют сведения об использовании ключа, политиках и ограничениях сертификатов, альтернативных формах имен и многое другое. Расширение состоит из идентификатора объекта (OID), логического значения, определяющего, является ли расширение критическим, и массива байтов, содержащего значение расширения, как показано в следующем синтаксисе ASN.1 .
Extension ::= SEQUENCE
{
extnId OBJECT IDENTIFIER,
critical BOOLEAN DEFAULT FALSE,
extnValue OCTETSTRING
}
API регистрации сертификатов содержит следующие интерфейсы, производные от IX509Extension, которые можно использовать для создания различных расширений, наиболее часто используемых в инфраструктуре открытых ключей (PKI), которая используется на сервере сертификатов Windows.
Интерфейс | Описание |
---|---|
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 |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по