ICertAdmin2::P ublishCRLs メソッド (certadm.h)
PublishCRLs メソッドは、証明機関 (CA) の証明書失効リスト (CRL) を発行します。 このメソッドは、最初に ICertAdmin インターフェイスで定義されました。
PublishCRLs メソッドは、CA の現在の証明書に基づいて CRL を発行し、更新され、まだ期限切れになっていない CA 証明書に基づいて CRL を発行します。
構文
HRESULT PublishCRLs(
[in] const BSTR strConfig,
[in] DATE Date,
[in] LONG CRLFlags
);
パラメーター
[in] strConfig
COMPUTERNAME\CANAME 形式の CA の有効な構成文字列を表します。COMPUTERNAME は証明書サービス サーバーのネットワーク名で、CANAME は証明書サービスのセットアップ時に入力された証明機関の共通名です。 構成文字列名の詳細については、「 ICertConfig」を参照してください。
[in] Date
CRL の次の更新値を GMT 時間で指定します。 Date が 0 以外の場合、CRL の次の更新値は Date であり、証明書サービスによって適用される丸めまたは上限の制限が適用されます。 Date が 0 の場合、CRL の次の更新値は、既定の CRL 発行期間から計算されます。
[in] CRLFlags
CRL 発行オプションを指定する値。 この値には、次のフラグのビットごとの組み合わせを指定できます。
戻り値
なし
解説
CA がベース CRL とデルタ CRL を正常に発行したかどうかを判断するには、それぞれ CR_PROP_BASECRLPUBLISHSTATUS と CR_PROP_DELTACRLPUBLISHSTATUS プロパティ識別子を使用して ICertAdmin2::GetCAProperty を呼び出します。
例
次の例は、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);
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | サポートなし |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | certadm.h (Certsrv.h を含む) |
Library | Certidl.lib |
[DLL] | Certadm.dll |