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


Метод ICertAdmin2::P ublishCRLs (certadm.h)

Метод PublishCRLs публикует списки отзыва сертификатов (CRL) для центра сертификации (ЦС). Этот метод был впервые определен в интерфейсе ICertAdmin .

Метод PublishCRLs публикует список отзыва сертификатов на основе текущего сертификата ЦС, а также список отзыва сертификатов на основе всех сертификатов ЦС, которые были обновлены и еще не истекли.

Синтаксис

HRESULT PublishCRLs(
  [in] const BSTR strConfig,
  [in] DATE       Date,
  [in] LONG       CRLFlags
);

Параметры

[in] strConfig

Представляет допустимую строку конфигурации для ЦС в формате COMPUTERNAME\CANAME, где COMPUTERNAME — сетевое имя сервера служб сертификации, а CANAME — общее имя центра сертификации, указанное во время установки служб сертификации. Сведения об имени строки конфигурации см. в разделе ICertConfig.

Важно!PublishCRLs не очищает внутренний кэш при изменении строки конфигурации. При изменении строки конфигурации для ЦС необходимо создать экземпляр нового объекта ICertAdmin и снова вызвать этот метод с новой строкой конфигурации.
 

[in] Date

Указывает следующее значение обновления списка отзыва сертификатов по времени GMT. Если аргумент Date не имеет нулевого значения, то следующим значением списка отзыва сертификатов является Date, при условии округления или ограничения верхнего предела, применяемого службами сертификатов. Если дата равна нулю, следующее значение обновления списка отзыва сертификатов вычисляется из периода публикации списка отзыва сертификатов по умолчанию.

[in] CRLFlags

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

Значение Значение
CA_CRL_BASE
Публикуется базовый список отзыва сертификатов или самая последняя из них публикуется повторно, если задано CA_CRL_REPUBLISH.
CA_CRL_DELTA
Публикуется разностный список отзыва сертификатов или последняя разностная CRL повторно публикуется, если задано CA_CRL_REPUBLISH. Обратите внимание, что если ЦС не включил разностную публикацию списка отзыва сертификатов, использование этого флага приведет к ошибке.
CA_CRL_REPUBLISH
Последний базовый или разностный список отзыва сертификатов, указанный в CA_CRL_BASE или CA_CRL_DELTA, публикуется повторно. ЦС не будет повторно публиковать список отзыва сертификатов в точке распространения CRL, если список отзыва сертификатов в точке распространения уже является последним списком отзыва сертификатов.

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

None

Remarks

Чтобы определить, успешно ли ЦС опубликовал базовые и разностные списки отзыва сертификатов, вызовите ICertAdmin2::GetCAProperty с идентификаторами свойств CR_PROP_BASECRLPUBLISHSTATUS и CR_PROP_DELTACRLPUBLISHSTATUS соответственно.

Примеры

В следующем примере показаны списки отзыва сертификатов публикации.

    DATE ExpDate;  // CRL expiration date.
    SYSTEMTIME st;
    BSTR bstrCA = NULL;

    //  Set the CRL expiration date to noon, July 1, 2001.
    //  Zero out values first (avoids setting minutes,
    //  seconds, and so on).
    memset(&st, 0, sizeof(SYSTEMTIME));
    st.wYear = 2001;
    st.wMonth = 7;     // July
    st.wDay = 1;       // first day of month
    st.wHour = 12;     // noon

    //  Place the date in required format.
    if (!SystemTimeToVariantTime(&st, &ExpDate))
    {
        printf("Unable to convert time\n");
        goto error;
    }

    bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
    if (NULL == bstrCA)
    {
        printf("Memory allocation failed\n");
        goto error;
    }

    //  Publish the CRL.
    //  pCertAdmin is a previously instantiated ICertAdmin object.
    hr = pCertAdmin2->PublishCRLs(bstrCA,
                              ExpDate,
                              CA_CRL_BASE);
    if (FAILED(hr))
    {
        printf("Failed PublishCRLs [%x]\n", hr);
        goto error;
    }
    else
        printf("PublishCRLs succeeded\n");
    //  Done.

error:

    //  Free resources.
    if (bstrCA)
        SysFreeString(bstrCA);

Требования

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