使用證書存放庫管理憑證
一段時間后,憑證 將會累積在用戶的計算機上。 管理這些憑證需要工具。 CryptoAPI 提供這些工具作為儲存、擷取、刪除、列出(列舉)和驗證憑證的功能。 CryptoAPI 也提供將憑證附加至訊息的方法。
CryptoAPI 提供兩個主要的函式類別來管理憑證:管理 證書存儲的函式,以及使用憑證的函式、證書吊銷清單(CRL),以及 證書信任清單 (CCL) 這些存放區內的憑證信任清單。
管理 證書存儲的功能,包括處理邏輯或 虛擬存儲、遠端存儲、外部存儲,以及可移動的存儲。
憑證、CRL和 CTL 可以在 憑證存儲中進行保留和維護。 它們可以從保存的存放區擷取,以便在驗證程式中使用。
證書存儲 是所有憑證功能的核心。 憑證會在存放區中使用具有 「Cert」 前置詞的函式來管理。 典型的證書存儲是憑證的連結清單,如下圖所示。
上圖顯示:
- 每個 證書存儲 都有該存放區中第一個證書區塊的指標。
- 憑證區塊包含該憑證數據的指標,以及存放區中下一個憑證區塊的「下一個」指標。
- 最後一個憑證區塊中的 「next」 指標會設定為 NULL。
- 憑證的數據區塊包含唯讀憑證內容和憑證的任何擴充屬性。
- 每個憑證的數據區塊包含 參考計數,可追蹤存在之憑證的指標數目。
證書存儲中的憑證 通常會保留在某種永久記憶體中,例如磁碟檔案或系統登錄。 您也可以在記憶體中建立和開啟證書存儲。 記憶體儲存區提供暫時憑證儲存,用於處理無需保留的憑證。
額外的存放區位置允許將存放區保留並搜尋在本地計算機的登錄中各個區段,或在設定了適當許可權的情況下,儲存在遠端計算機的登錄中。
每個使用者都有個人「我的」存放區,其中儲存該用戶的憑證。 [我的存放區] 可以是許多實體位置中的任何一個,包括本機或遠端電腦上的登錄、磁碟檔案、資料庫、目錄服務、智慧卡或其他位置。 雖然任何憑證都可以儲存在我的存放區中,但此存放區應保留給使用者的個人憑證:用於簽署和解密該使用者訊息的憑證。
使用憑證進行驗證取決於某些受信任的憑證簽發者所簽發的憑證。 信任憑證簽發者的憑證通常會保留在根存放區中,而根存放區目前會保存至登錄子機碼。 在 CryptoAPI 內容中,根存放區會受到保護,而使用者介面對話方塊會提醒使用者只將受信任的憑證放入該存放區。 在企業網路情況下,系統管理員可能會將憑證從域控制器計算機推送至用戶端電腦上的根存放區。 此過程會提供網域的所有成員相似的信任清單。
其他憑證可以儲存在 證書頒發機構單位 (CA) 系統存放區或使用者建立的檔案型存放區中。
如需使用和維護憑證儲存的函式清單,請參閱 證書儲存函式。
如需使用其中一些函式的範例,請參閱 範例 C 程式:證書儲存作業。
相關主題