Bagikan melalui


Metode ICertAdmin2::P ublishCRLs (certadm.h)

Metode PublishCRLs menerbitkan daftar pencabutan sertifikat (CRL) untuk otoritas sertifikasi (CA). Metode ini pertama kali didefinisikan dalam antarmuka ICertAdmin .

Metode PublishCRLs menerbitkan CRL berdasarkan sertifikat CA saat ini, serta CRL berdasarkan sertifikat CA apa pun yang telah diperbarui dan belum kedaluwarsa.

Sintaks

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

Parameter

[in] strConfig

Mewakili string konfigurasi yang valid untuk CA dalam bentuk COMPUTERNAME\CANAME, di mana COMPUTERNAME adalah nama jaringan server Certificate Services, dan CANAME adalah nama umum otoritas sertifikasi, seperti yang dimasukkan selama penyiapan Layanan Sertifikat. Untuk informasi tentang nama string konfigurasi, lihat ICertConfig.

PublishCRLspenting tidak menghapus cache internal saat string konfigurasi diubah. Saat Anda mengubah string konfigurasi untuk CA, Anda harus membuat instans objek ICertAdmin baru dan memanggil metode ini lagi dengan string konfigurasi baru.
 

[in] Date

Menentukan nilai pembaruan CRL berikutnya dalam waktu GMT. Jika Tanggal bukan nol, nilai pembaruan berikutnya untuk CRL adalah Tanggal, tunduk pada batas pembulatan atau langit-langit yang diberlakukan oleh Layanan Sertifikat. Jika Tanggal adalah nol, nilai pembaruan CRL berikutnya dihitung dari periode publikasi CRL default.

[in] CRLFlags

Nilai yang menentukan opsi penerbitan CRL. Nilai ini bisa menjadi kombinasi bitwise dari bendera berikut.

Nilai Makna
CA_CRL_BASE
CRL dasar diterbitkan, atau CRL dasar terbaru diterbitkan ulang jika CA_CRL_REPUBLISH diatur.
CA_CRL_DELTA
Delta CRL diterbitkan, atau CRL delta terbaru diterbitkan ulang jika CA_CRL_REPUBLISH diatur. Perhatikan bahwa jika CA belum mengaktifkan penerbitan CRL delta, penggunaan bendera ini akan mengakibatkan kesalahan.
CA_CRL_REPUBLISH
CRL dasar atau delta terbaru, seperti yang ditentukan oleh CA_CRL_BASE atau CA_CRL_DELTA, diterbitkan ulang. CA tidak akan menerbitkan ulang CRL ke titik distribusi CRL jika CRL di titik distribusi sudah menjadi CRL terbaru.

Nilai kembali

Tidak ada

Keterangan

Untuk menentukan apakah CA telah berhasil menerbitkan CRL dasar dan delta, panggil ICertAdmin2::GetCAProperty dengan pengidentifikasi properti CR_PROP_BASECRLPUBLISHSTATUS dan CR_PROP_DELTACRLPUBLISHSTATUS.

Contoh

Contoh berikut menunjukkan penerbitan CRL.

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

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tidak ada yang didukung
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header certadm.h (termasuk Certsrv.h)
Pustaka Certidl.lib
DLL Certadm.dll