Share via


Método ICertAdmin2::P ublishCRLs (certadm.h)

El método PublishCRLs publica listas de revocación de certificados (CRL) para una entidad de certificación (CA). Este método se definió por primera vez en la interfaz ICertAdmin .

El método PublishCRLs publica una CRL basada en el certificado actual de la ENTIDAD de certificación, así como las CRL basadas en los certificados de CA que se han renovado y aún no han expirado.

Sintaxis

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

Parámetros

[in] strConfig

Representa una cadena de configuración válida para la ENTIDAD de certificación con el formato COMPUTERNAME\CANAME, donde COMPUTERNAME es el nombre de red del servidor de Servicios de certificados y CANAME es el nombre común de la entidad de certificación, tal como se especifica durante la configuración de Servicios de certificados. Para obtener información sobre el nombre de la cadena de configuración, vea ICertConfig.

ImportantePublishCRLs no borra la memoria caché interna cuando se cambia la cadena de configuración. Al cambiar la cadena de configuración de la entidad de certificación, debe crear una instancia de un nuevo objeto ICertAdmin y llamar a este método de nuevo con la nueva cadena de configuración.
 

[in] Date

Especifica el siguiente valor de actualización de la CRL en la hora GMT. Si Date es distinto de cero, el siguiente valor de actualización para la CRL es Date, sujeto a los límites de redondeo o límite máximo aplicados por Servicios de certificados. Si Date es cero, el siguiente valor de actualización de la CRL se calcula a partir del período de publicación de CRL predeterminado.

[in] CRLFlags

Valor que especifica las opciones de publicación de CRL. Este valor puede ser una combinación bit a bit de las marcas siguientes.

Valor Significado
CA_CRL_BASE
Se publica una CRL base o se vuelve a publicar la CRL base más reciente si se establece CA_CRL_REPUBLISH.
CA_CRL_DELTA
Se publica una CRL delta o se vuelve a publicar la CRL delta más reciente si se establece CA_CRL_REPUBLISH. Tenga en cuenta que si la ENTIDAD de certificación no ha habilitado la publicación crL diferencial, el uso de esta marca producirá un error.
CA_CRL_REPUBLISH
Se vuelve a publicar la CRL base o delta más reciente, tal como se especifica en CA_CRL_BASE o CA_CRL_DELTA. La ENTIDAD de certificación no volverá a publicar una CRL en un punto de distribución CRL si la CRL en el punto de distribución ya es la CRL más reciente.

Valor devuelto

None

Observaciones

Para determinar si una ENTIDAD de certificación ha publicado correctamente crLs base y delta, llame a ICertAdmin2::GetCAProperty con el CR_PROP_BASECRLPUBLISHSTATUS y CR_PROP_DELTACRLPUBLISHSTATUS identificadores de propiedad, respectivamente.

Ejemplos

En el ejemplo siguiente se muestran las CRL de publicación.

    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);

Requisitos

Requisito Value
Cliente mínimo compatible No se admite ninguno
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado certadm.h (incluya Certsrv.h)
Library Certidl.lib
Archivo DLL Certadm.dll