Freigeben über


ICertAdmin2::P ublishCRLs-Methode (certadm.h)

Die PublishCRLs-Methode veröffentlicht Zertifikatsperrlisten (Certificate Revocation Lists , CRLs) für eine Zertifizierungsstelle (CA). Diese Methode wurde zuerst in der ICertAdmin-Schnittstelle definiert.

Die PublishCRLs-Methode veröffentlicht eine Zertifikatsperrliste basierend auf dem aktuellen Zertifikat der Zertifizierungsstelle sowie Zertifikatsperrlisten basierend auf allen Zertifizierungsstellenzertifikaten, die erneuert wurden und noch nicht abgelaufen sind.

Syntax

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

Parameter

[in] strConfig

Stellt eine gültige Konfigurationszeichenfolge für die Zertifizierungsstelle im Format COMPUTERNAME\CANAME dar, wobei COMPUTERNAME der Netzwerkname des Zertifikatdiensteservers und CANAME der allgemeine Name der Zertifizierungsstelle ist, wie er während des Setups der Zertifikatdienste eingegeben wurde. Informationen zum Namen der Konfigurationszeichenfolge finden Sie unter ICertConfig.

WichtigePublishCRLs löscht den internen Cache nicht, wenn die Konfigurationszeichenfolge geändert wird. Wenn Sie die Konfigurationszeichenfolge für die Zertifizierungsstelle ändern, müssen Sie ein neues ICertAdmin-Objekt instanziieren und diese Methode mit der neuen Konfigurationszeichenfolge erneut aufrufen.
 

[in] Date

Gibt den nächsten Aktualisierungswert der CRL in GMT-Zeit an. Wenn Date nonzero ist, ist der nächste Aktualisierungswert für die Zertifikatsperrliste Date, vorbehaltlich der Von Zertifikatdiensten erzwungenen Rundungs- oder Obergrenzen. Wenn Date 0 ist, wird der nächste Aktualisierungswert der Zertifikatsperrliste aus dem Standard-Sperrlistenveröffentlichungszeitraum berechnet.

[in] CRLFlags

Wert, der die Optionen für die CRL-Veröffentlichung angibt. Dieser Wert kann eine bitweise Kombination der folgenden Flags sein.

Wert Bedeutung
CA_CRL_BASE
Eine Basissperrliste wird veröffentlicht, oder die neueste Basissperrliste wird erneut veröffentlicht, wenn CA_CRL_REPUBLISH festgelegt ist.
CA_CRL_DELTA
Eine Delta-Sperrliste wird veröffentlicht, oder die neueste Delta-Zertifikatsperrliste wird erneut veröffentlicht, wenn CA_CRL_REPUBLISH festgelegt ist. Beachten Sie, dass die Verwendung dieses Flags zu einem Fehler führt, wenn die Zertifizierungsstelle die Delta-CRL-Veröffentlichung nicht aktiviert hat.
CA_CRL_REPUBLISH
Die neueste Basis- oder Delta-Zertifikatsperrliste, wie durch CA_CRL_BASE oder CA_CRL_DELTA angegeben, wird erneut veröffentlicht. Die Zertifizierungsstelle veröffentlicht eine Zertifikatsperrliste nicht erneut auf einem Sperrlistenverteilungspunkt, wenn die Zertifikatsperrliste am Verteilungspunkt bereits die neueste Zertifikatsperrliste ist.

Rückgabewert

Keine

Bemerkungen

Um zu ermitteln, ob eine Zertifizierungsstelle Basis- und Delta-CRLs erfolgreich veröffentlicht hat, rufen Sie ICertAdmin2::GetCAProperty mit den CR_PROP_BASECRLPUBLISHSTATUS bzw. CR_PROP_DELTACRLPUBLISHSTATUS Eigenschaftenbezeichnern auf.

Beispiele

Das folgende Beispiel zeigt die Veröffentlichung von CRLs.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Nicht unterstützt
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile certadm.h (include Certsrv.h)
Bibliothek Certidl.lib
DLL Certadm.dll