證書頒發機構單位更新
憑證服務 支援更新 證書頒發機構單位(CA)。 更新是發行 CA 的新憑證,以將 CA 的存續期延長至原始憑證的結束日期。 您可以將 CA 更新為證書頒發機構單位 MMC 嵌入式管理單元內的工作,或使用 Certutil.exe 工具(使用 -renewCert 命令)。
每個更新都會產生新的 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。
您可以呼叫 GetCertificateProperty 方法來擷取已編制索引的 CA 憑證和 CRL(在 ICertServerExit 和 ICertServerPolicy 介面中)。 當您擷取與 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 憑證的更新會導致憑證索引遞增。 如果在更新中重複使用索引鍵,索引鍵索引會與上一個索引鍵索引相同。 如果未重複使用金鑰,索引鍵索引會符合新的憑證索引。
相關主題