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


Метод ICertServerExit::GetCertificateProperty (certif.h)

Метод GetCertificateProperty возвращает именованное свойство из сертификата.

Синтаксис

HRESULT GetCertificateProperty(
  [in]  const BSTR strPropertyName,
  [in]  LONG       PropertyType,
  [out] VARIANT    *pvarPropertyValue
);

Параметры

[in] strPropertyName

Указывает извлекаемое именованное свойство. Существует набор стандартных свойств сертификата, называемых свойствами имен, которые являются допустимыми и могут быть получены путем вызова этого метода. Сведения об этих свойствах см. в разделе Свойства имени. Другие свойства, которые можно получить, включают свойства сертификата.

Следующие свойства являются уникальными для сертификатов и могут быть прочитаны командой GetCertificateProperty.

Значение Значение
NotBefore
Дата и время
Дата начала действия сертификата
NotAfter
Дата и время
Дата окончания срока действия сертификата
PublicKeyAlgorithm
Строка
Идентификатор объекта алгоритма ключа субъекта (OID)
RawCertificate
Двоичные данные
Необработанные байты сертификата
RawPublicKey
Двоичные данные
Ключ темы
RawPublicKeyAlgorithmParameters
Двоичные данные
Параметры алгоритма ключа субъекта
RequestID
Подписанный длинный
Внутренний идентификатор запроса
SerialNumber
Строка
серийный номер сертификата;
 

Свойства DistinguishedName, RawName и SerialNumber сертификата доступны getCertificateProperty только после того, как модуль политики завершит обработку запроса и сертификат выдан.

Следующие свойства применяются к центру сертификации. Для чтения любого из этих свойств контекст должен быть равен нулю. Контексту присваивается нулевое значение при первоначальном создании объекта ICertServerExit . Ему также можно задать нулевое значение, вызвав метод SetContext .

Значение Значение
CAType
Long
Тип центра сертификации. Это может быть одно из следующих значений (определенных в Certsrv.h):

ENUM_ENTERPRISE_ROOTCA

ENUM_ENTERPRISE_SUBCA

ENUM_STANDALONE_ROOTCA

ENUM_STANDALONE_SUBCA

CertCount
Long
Количество сертификатов ЦС. Это значение будет равно 1 с лишним числом обновлений ЦС. Сведения о продлении см. в разделе Обновление центра сертификации.
CertState
Long
Состояние сертификата ЦС. Может иметь одно из следующих значений:
CA_DISP_ERROR: сертификат ЦС никогда не выдавался.
CA_DISP_REVOKED: сертификат ЦС был отозван.
CA_DISP_VALID: сертификат ЦС по-прежнему действителен.
CA_DISP_INVALID: срок действия сертификата ЦС истек.
Это имя свойства может быть добавлено с помощью ".#", где # представляет индекс сертификата ЦС (или, в случае свойства CRLSuffix, индекс списка отзыва сертификатов). Сведения об индексах сертификатов и списков отзыва сертификатов см. в разделе Обновление центра сертификации.
CertSuffix
Строка
Суффикс сертификата ЦС. Суффикс — это пустая строка для сертификатов ЦС с индексом, равным нулю; В противном случае суффикс (в форме "(nn)", где nn — индекс сертификата) применяется ко всем URL-адресам, указывающим на сертификаты ЦС, хранящиеся в файлах или объектах службы каталогов. Для URL-адресов, отличных от LDAP , суффикс обычно отображается перед текстом .crt. Для URL-адресов LDAP суффикс обычно добавляется к первому "CN=" в полном различаемом имени.

Это имя свойства может быть добавлено с помощью ".#", где # представляет индекс сертификата ЦС (или, в случае свойства CRLSuffix, индекс списка отзыва сертификатов). Сведения об индексах сертификатов и списков отзыва сертификатов см. в разделе Обновление центра сертификации.

CRLIndex
Long
Индекс списка отзыва сертификатов (CRL). Добавление индекса сертификата к этому имени свойства позволяет получить индекс списка отзыва сертификатов. Индекс списка отзыва сертификатов не обязательно соответствует индексу сертификата. Дополнительные сведения см. в разделе Сертификация.

Это имя свойства может быть добавлено с помощью ".#", где # представляет индекс сертификата ЦС (или, в случае свойства CRLSuffix, индекс списка отзыва сертификатов). Сведения об индексах сертификатов и списков отзыва сертификатов см. в разделе Обновление центра сертификации.

CRLState
Long
Состояние списка отзыва сертификатов. Может иметь одно из следующих значений:
CA_DISP_ERROR. Список отзыва сертификатов управляется другим сертификатом ЦС.
CA_DISP_REVOKED. Все неиспользовавшиеся сертификаты ЦС, использующие список отзыва сертификатов этого сертификата ЦС, были отозваны.
CA_DISP_VALID. Сертификат ЦС по-прежнему используется для публикации списков отзыва сертификатов по мере необходимости.
CA_DISP_INVALID. Срок действия всех сертификатов ЦС, использующих список отзыва сертификатов этого сертификата ЦС, истек.
Это имя свойства может быть добавлено с помощью ".#", где # представляет индекс сертификата ЦС (или, в случае свойства CRLSuffix, индекс списка отзыва сертификатов). Сведения об индексах сертификатов и списков отзыва сертификатов см. в разделе Обновление центра сертификации.
CRLSuffix
Строка
Суффикс для списка отзыва сертификатов ЦС. Суффикс — это пустая строка для списков отзыва сертификатов с индексом, равным нулю; В противном случае суффикс (в форме "(nn)", где nn — индекс списка отзыва сертификатов) применяется ко всем URL-адресам, указывающим на списки отзыва сертификатов, хранящиеся в файлах или объектах службы каталогов. Для URL-адресов, отличных от LDAP, суффикс обычно отображается перед текстом crl. Для URL-адресов LDAP суффикс обычно добавляется к первому "CN=" в полном различаемом имени.

Это имя свойства может быть добавлено с помощью ".#", где # представляет индекс сертификата ЦС (или, в случае свойства CRLSuffix, индекс списка отзыва сертификатов). Сведения об индексах сертификатов и списков отзыва сертификатов см. в разделе Обновление центра сертификации.

fUseDS
Long
Указывает, использует ли ЦС службу каталогов. Это может быть одно из следующих значений:
  • 0= нет
  • 1 = да
MachineDNSName
Строка
DNS-имя сервера, на котором размещен ЦС.
ModuleRegistryLocation
Строка
Расположение реестра, доступное для использования модулем.
RawCACertificate
Двоичные данные
Сертификат ЦС.

Это имя свойства может быть добавлено с помощью ".#", где # представляет индекс сертификата ЦС (или, в случае свойства CRLSuffix, индекс списка отзыва сертификатов). Сведения об индексах сертификатов и списков отзыва сертификатов см. в разделе Обновление центра сертификации.

RawCRL
Двоичные данные
Список отзыва сертификатов ЦС (CRL).

Это имя свойства может быть добавлено с помощью ".#", где # представляет индекс сертификата ЦС (или, в случае свойства CRLSuffix, индекс списка отзыва сертификатов). Сведения об индексах сертификатов и списков отзыва сертификатов см. в разделе Обновление центра сертификации.

RequesterCAAccess
Long
Указывает, авторизован ли инициатор запроса на запрос сертификата. Это может быть одно из следующих значений:
  • 0= нет
  • 1 = да
(Оснастку MMC центра сертификации можно использовать для управления разрешениями на запросы сертификатов .)
SanitizedCAName
Строка
Санитизированное имя для ЦС. Сведения о санированных именах ЦС см. в разделе ICertConfig::GetConfig.
SanitizedShortName
Строка
Санитизированное имя ЦС, сокращенное и содержащее хэш-значение для обеспечения уникальности.

[in] PropertyType

Указывает тип свойства. Тип может быть одним из следующих.

Значение Значение
PROPTYPE_LONG
Подписанные длинные данные
PROPTYPE_DATE
Дата и время
PROPTYPE_BINARY
Двоичные данные
PROPTYPE_STRING
Строковые данные в Юникоде

[out] pvarPropertyValue

Указатель на VARIANT , который будет содержать значение свойства. Возвращаемое значение кодируется как BSTR. Используйте функцию SysStringByteLen , чтобы получить длину BSTR. Двоичный BLOB хранится в виде Distinguished Encoding Rules закодированного сертификата X.509.

Возвращаемое значение

C++

Если метод выполнен успешно, метод возвращает S_OK.

Если метод завершается сбоем, он возвращает значение HRESULT , указывающее на ошибку. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.

VB

Возвращаемое значение — это запрошенное значение свойства.

Комментарии

Перед использованием этого метода необходимо вызвать ICertServerExit::SetContext .

Примеры

BSTR    bstrPropName = NULL;
VARIANT varProp;

VariantInit(&varProp);

// Set the property name to RequestID.
bstrPropName = SysAllocString(L"RequestID");

// Retrieve the certificate property.
// pCertServerExit has been used to call SetContext previously.
hr = pCertServerExit->GetCertificateProperty(bstrPropName,
                                             PROPTYPE_LONG,
                                             &varProp );
if (FAILED(hr))
{
    printf("Failed GetCertificateProperty [%x]\n", hr);
    goto error;
}
else
{
    // Successfully retrieved property; use varProp as needed.
    // ...
}

// Done processing.
if (NULL != bstrPropName)
    SysFreeString(bstrPropName);
VariantClear(&varProp);

Требования

   
Минимальная версия клиента Ни одна версия не поддерживается
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header certif.h (включая Certsrv.h)
Библиотека Certidl.lib
DLL Certcli.dll

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

ICertServerExit

ICertServerExit::SetContext

Свойства имени