集合存放區
隨著 憑證數目, 憑證撤銷會列出 (CRL) ,而憑證 信任清單 (CCL) 在使用者的集合中成長,這些憑證的組織就會變成問題。 其中一個可能的解決方案是建立個別的憑證存放區,以保留不同類型的憑證。 此解決方案會建立新的問題,因為應用程式可能需要搜尋數個不同的存放區來尋找特定憑證。 邏輯或集合存放區的用法可解決此問題。
邏輯存放區和集合憑證存放區是實體存放區群組,這些實體存放區會顯示為單一存放區。 邏輯或集合存放區的所有成員存放區都可以使用單一函式呼叫來搜尋或列舉 CertFindCertificateInStore 或 CertEnumCertificatesInStore。
使用邏輯或集合存放區也提供難以透過紙張記錄達成的彈性。 單一實體存放區中的憑證可能必須是數個不同邏輯群組的成員。 因此,個別實體存放區可以是多個邏輯或集合存放區的成員,如下圖所示。
下圖顯示下列基本邏輯憑證存放區概念:
- 集合憑證存放區具有該集合存放區第一個指標區塊的指標。
- 集合存放區的每個指標區塊都有同層級存放區的指標,以及集合下一個指標區塊的指標。
- 集合中的每個同層級存放區都是簡單的實體憑證存放區。
- 簡單的憑證存放區可以是許多不同集合存放區中的成員同層級存放區。
- 新增至集合存放區的憑證會實際新增至集合中的其中一個同層級存放區。
- 同層級存放區中的憑證可由同層級存放區所屬的任何集合存放區存取。
集合存放區是透過使用 CertOpenStore 開啟集合存放區,然後使用CertAddStoreToCollection將開啟的同層級存放區新增至集合存放區,以建置在應用程式內。 呼叫 CertRemoveStoreFromCollection,即可從集合存放區中刪除同層級存放區。