憑證授權單位單位更新

憑證服務 支援更新 憑證授權單位單位 (CA) 。 更新是發行新憑證給 CA,以將 CA 生命週期延長到其原始憑證的結束日期。 您可以使用 -renewCert 命令) ,將 CA 更新為憑證授權單位單位 MMC 嵌入式管理單元內的工作,或使用 Certutil.exe 工具 (。

每個更新都會產生新的 CA 憑證;不過,系統管理員可以產生新的公開/私密金鑰組,或重複使用 CA 憑證的現有公開/私密金鑰組。 為了一致性和完整性,CA 憑證和 憑證撤銷清單 (CA 發行的 CRL) ,在 CA 更新之後才能使用。 若要提供這些憑證,憑證服務會維護 CA 憑證、CRL 和金鑰的索引。

在各種 CA 更新作業期間,CA 憑證和 CRL 的索引和尾碼名稱如下。

作業 CA 憑證索引 CA 憑證檔案名尾碼 CRL 和索引鍵索引 CRL 和金鑰容器名稱尾碼
原始 CA 安裝 0 "" 0 ""
使用新金鑰更新 1 「 (1) 」 1 「 (1) 」
更新重複使用金鑰 2 「 (2) 」 1 「 (1) 」
更新重複使用金鑰 3 「 (3) 」 1 「 (1) 」
使用新金鑰更新 4 「 (4) 」 4 「 (4) 」
更新重複使用金鑰 5 「 (5) 」 4 「 (4) 」
使用新金鑰更新 6 「 (6) 」 6 「 (6) 」
更新重複使用金鑰 7 「 (7) 」 6 「 (6) 」

 

安裝 CA 時,憑證索引為零,且憑證尾碼為 「」 (空字串) 。 每次更新憑證時, (是否重複使用金鑰) ,憑證索引會遞增一個,而憑證檔案名尾碼會變成 「 (n) 」 格式的字串,其中 n 代表 CA 憑證已更新的次數。 第一次更新之後,憑證索引為 1,憑證檔案名尾碼為 「 (1) 」。 第二次更新之後,憑證索引為 2,憑證檔案名尾碼為 「 (2) 」,依此類傳。

雖然每次更新 CA 時,CA 憑證索引和尾碼都會遞增一個,但只有在更新程式封裝含新的公開/私密金鑰組時,CRL 和金鑰索引和檔案名尾碼才會設定為 CA 憑證索引。 如果沒有,這些索引和尾碼的值會維持與上一個索引的值相同。 在更新期間,系統管理員會指定是否產生新的金鑰組,還是使用現有的金鑰組。 (在憑證授權單位單位 MMC 嵌入式管理單元中,使用者介面中的選項會指定新的或現有的金鑰組;在 Certutil.exe 工具中, certutil -renewCert 命令會以新的金鑰組更新 CA,而 certutil -renewCert ReuseKeys 命令會以現有的金鑰組更新 CA。)

CRL 索引會直接系結至索引鍵索引,只有在新金鑰組用於更新時,才會設定為 CA 憑證索引。 第一次更新 (使用新金鑰組) 之後,CRL 和索引鍵的索引會設定為 1,而 CRL 和金鑰容器名稱尾碼為 「 (1) 」。 不過,第二次更新之後,CRL 和索引鍵的索引會維持 1,而 CRL 和金鑰容器名稱尾碼也會維持 「 (1) 」 ;這是因為第二次更新使用現有的金鑰組,而且每個 CA 金鑰組只會發出一個 CRL。

您可以在ICertServerExitICertServerPolicy) 介面中呼叫GetCertificateProperty方法 (,以擷取索引的 CA 憑證和 CRL。 當您擷取與 CA 憑證或 CRL 相關的特定屬性時,您可以將 CA 憑證的以零起始的索引附加至屬性名稱。 例如,若要擷取對應至 CA 第三個憑證的 CRL 索引,請將屬性 「CRLIndex.2」 傳遞至 ICertServerPolicy::GetCertificateProperty;針對資料表,擷取的 「CRLIndex.2」 屬性值會是 1。 稱為 「CertCount」 的屬性可用來判斷 CA 已發行 CA 憑證的次數。

CA 憑證和 CRL 包含一個延伸模組,可提供憑證和金鑰索引的相關資訊。 此延伸模組在 Wincrypt.h 中定義為 szOID_CERTSRV_CA_VERSION,其值為 「1.3.6.1.4.1.311.21.1」。 延伸模組資料是 DWORD 值, (編碼為延伸模組) 中的X509_INTEGER;低 16 位是憑證索引,高 16 位是索引鍵索引。

CA 的初始安裝會產生零的憑證索引,以及零的索引鍵索引。 CA 憑證的更新會導致憑證索引遞增。 如果在更新中重複使用索引鍵,索引鍵索引會與前一個索引鍵索引相同。 如果未重複使用金鑰,索引鍵索引會符合新的憑證索引。

ICertServerPolicy::GetCertificateProperty

ICertServerExit::GetCertificateProperty