共用方式為


enrollNestedCMC

enrollNestedCMC 範例會從檔案讀取現有的 CMC 憑證要求、將它包裝在另一個 CMC 要求中、簽署此外部要求、將它提交至憑證授權單位單位 (CA) ,並將 CA 的憑證回應儲存至檔案。

位置

當您安裝 Microsoft Windows 軟體發展工具組 (SDK) 時,預設會在 %ProgramFiles%\Microsoft SDKs\Windows\v7.0\Samples\X509 Certificate Enrollment\VC\enrollmentNestedCMC 資料夾中安裝範例。

討論

enrollNestedCMC 範例:

  1. 處理下列命令列引數:
    • 輸入檔的名稱。
    • 輸出檔的名稱。
    • 選擇性的要求範本。
  2. 從檔案讀取現有的 CMC 要求做為 base63 編碼的位元組陣列、將位元組陣列轉換成 BSTR、建立 IX509CertificateRequestCmc 物件,並使用 BSTR 初始化要求物件。 初始化的物件會變成內部要求。
  3. 使用在上一個步驟中建立和初始化的內部要求物件,初始化另一個 CMC 要求。
  4. 擷取現有的簽署憑證,或者,如果找不到憑證,請從命令列上指定的範本建立憑證要求,並嘗試註冊。 findCertByTemplate 和 enrollCertByTemplate 函式定義于 enrollCommon.cpp 中。
  5. 從外部 CMC 要求擷取 ISignerCertificates 集合、建立新的 ISignerCertificate 物件、使用擷取的簽署憑證初始化它,並將它新增至集合。
  6. 使用 可辨別編碼規則 (DER) 編碼 CMC 要求,並將要求擷取為BSTR
  7. 建立 ICertConfig 物件,並用它來擷取包含 CA 組態的字串。
  8. 建立 CryptoAPI ICertRequest2 物件,並使用它加上包含 CA 組態的字串和憑證要求,以將要求提交至 CA。
  9. 檢查註冊程式的狀態,並將 CA 的憑證回應儲存到檔案。 EncodeToFileW 函式定義于 enrollCommon.cpp 中。

CMC 要求

使用內含範例