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


Метод ICertRequest::GetCACertificate (certcli.h)

Метод GetCACertificate возвращает сертификат центра сертификации (ЦС) для сервера служб сертификатов.

Синтаксис

HRESULT GetCACertificate(
  [in]          LONG       fExchangeCertificate,
  [in]          const BSTR strConfig,
  [in]          LONG       Flags,
  [out, retval] BSTR       *pstrCertificate
);

Параметры

[in] fExchangeCertificate

Логическое значение, указывающее, какой сертификат ЦС следует вернуть. Если fExchangeCertificate имеет значение false, будет возвращен сертификат подписи ЦС. Сертификат подписи ЦС можно использовать для проверки подписей сертификатов, выданных ЦС.

Windows Server 2003: Если параметру fExchangeCertificate присвоено значение true, возвращается сертификат Exchange ЦС. Сертификат Exchange ЦС можно использовать для шифрования запросов, отправляемых в ЦС.

Начиная с Windows 7 и Windows Server 2008 R2 этот параметр игнорируется во время регистрации https://, а функция в случае успешного выполнения всегда возвращает сертификат ЦС exchange. Чтобы получить сертификат подписи ЦС для веб-службы регистрации, используйте метод Property в интерфейсе ICertificationAuthority со значением перечисления CAPropCertificate EnrollmentCAProperty .

Обратите внимание, что значение TRUE определяется (в файле заголовка Майкрософт) для программистов C/C++ как одно, а Visual Basic определяет true ключевое слово как отрицательное значение. В результате разработчики Visual Basic должны использовать один (вместо True), чтобы задать для этого параметра значение TRUE. Однако чтобы задать для этого параметра значение FALSE, разработчики Visual Basic могут использовать ноль или False.

[in] strConfig

Представляет допустимую строку конфигурации для сервера служб сертификатов. Строка может быть URL-адресом HTTPS для сервера регистрации или в форме Имя_\компьютера CAName, где ComputerName — сетевое имя сервера, а CAName — общее имя центра сертификации, указанное при настройке служб сертификации. Сведения об имени строки конфигурации см. в разделе ICertConfig.

Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: URL-адрес HTTPS не поддерживается в качестве входных данных.

[in] Flags

Следующие флаги можно использовать для указания формата возвращаемого сертификата.

Значение Значение
CR_OUT_BASE64HEADER
Формат BASE64 с начальным и конечным.
CR_OUT_BASE64
Формат BASE64 без начала и конца.
CR_OUT_BINARY
Двоичный формат.
 

Следующий флаг можно объединить с флагом формата, чтобы указать, что полная цепочка сертификатов должна быть включена в запрошенный сертификат ЦС. В противном случае возвращается только запрошенный сертификат ЦС (в формате X.509 ).

Значение Значение
CR_OUT_CHAIN
Включите полную цепочку сертификатов в PKCS 7.

[out, retval] pstrCertificate

Указатель на BSTR , содержащий сертификат ЦС для сервера служб сертификатов в указанном формате.

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

C++

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

После успешного выполнения этого метода параметру *pstrCertificate присваивается значение BSTR , содержащее сертификат ЦС. Чтобы использовать этот метод, создайте переменную типа BSTR , задайте для переменной значение NULL и передайте адрес этой переменной как pstrCertificate.

Завершив использование *pstrCertificate, освободите его, вызвав функцию SysFreeString .

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

VB

Сертификат ЦС для сервера служб сертификатов в указанном формате.

Комментарии

Задачи администрирования используют DCOM. Код, вызывающий этот метод интерфейса, как определено в более ранней версии Certadm.h, будет выполняться на серверах Windows, если клиент и сервер работают под одной операционной системой Windows.

Требования

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

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

CCertRequest

ICertRequest

ICertRequest2

ICertRequest3