Certmgr.exe (憑證管理員工具)

憑證管理員工具 (Certmgr.exe) 可以管理憑證、憑證信任清單 (CTL) 和憑證撤銷清單 (CRL)。

憑證管理員會與 Windows 10 SDK 一起安裝。 若要啟動此工具,請使用 Visual Studio 開發人員命令提示字元或 Visual Studio Developer PowerShell

注意

憑證管理工具 (Certmgr.exe) 是一個命令列公用程式,而憑證 (Certmgr.msc) 則是 Microsoft Management Console (MMC) 嵌入式管理單元。 因為 Certmgr.msc 通常是在 Windows 系統目錄中找到,所以即使您已開啟 Visual Studio 開發人員命令提示字元,在命令列輸入 certmgr ,仍可能會載入憑證 MMC 嵌入式管理單元。 這是因為嵌入式管理單元的路徑位於環境變數中 Path 憑證管理員工具的路徑之前。 如果您遇到此問題,您可以藉由指定可執行檔的路徑來執行Certmgr.exe命令,例如 %ProgramFiles (x86) %\Windows Kits\10\bin\10.0.22000.0\arm64\certmgr.exe

如需 X.509 憑證的概觀,請參閱使用憑證

Syntax

在命令提示字元中,輸入下列命令:

certmgr [/add | /del | /put] [options]
[/s[/r registryLocation]] [sourceStorename]
[/s[/r registryLocation]] [destinationStorename]

參數

引數 描述
sourceStorename 憑證存放區,包含現有的憑證、CTL,或是要新增、刪除、儲存或顯示的 CRL。 這可以是存放區檔或系統存放區。
destinationStorename 輸出憑證存放區或檔案。
選項 描述
/add 將憑證、CTL 和 CRL 加入憑證存放區。
/all /add 一起使用時會加入所有項目。 搭配 /del 使用時會刪除所有項目。不使用 /add/del 選項時會顯示所有項目。 /all 選項無法與 /put 一起使用。
/c /add 一起使用時會加入憑證。 搭配 /del 使用時會刪除憑證。搭配 /put 使用時會儲存憑證。 未與 /add/del/put 選項一起使用時,會顯示憑證。
/CRL /add 一起使用時會加入 CRL。 搭配 /del 使用時會刪除 CRL。搭配 /put 使用時會儲存 CRL。 未與 /add/del/put 選項一起使用時,會顯示 CRL。
/CTL /add 一起使用時會加入 CTL。 搭配 /del 使用時會刪除 CTL。搭配 /put 使用時會儲存 CTL。 未與 /add/del/put 選項一起使用時,會顯示 CTL。
/del 從憑證存放區刪除憑證、CTL 和 CRL。
/eencodingType 指定憑證的編碼類型。 預設值為 X509_ASN_ENCODING
/fdwFlags 指定存放區的開放旗標。 這是傳遞到 CertOpenStoredwFlags 參數。 預設值是 CERT_SYSTEM_STORE_CURRENT_USER。 只有在使用 /y 選項時,才會將這個選項列入考量。
/h[elp] 顯示工具的命令語法和選項。
/nnam 指定憑證的通用名稱來進行加入、刪除或儲存。 這個選項只能與憑證一起使用,無法與 CTL 或 CRL 一起使用。
/put 將 X.509 憑證、CTL 或 CRL 從憑證存放區儲存到檔案。 檔案是以 X.509 格式儲存。 您可以將 /7 選項與 /put 選項一起使用,以 PKCS #7 格式儲存檔案。 /put 選項後面必須接著 /c/CTL/CRL /all 選項無法與 /put 一起使用。
/rlocation 識別系統存放區的登錄位置。 只有在指定 /s 選項時,才會將這個選項列入考量。 location 必須是下列其中一項:

- currentUser 表示憑證存放區是在 HKEY_CURRENT_USER 機碼下方。 此為預設值。
- localMachine 表示憑證存放區是在 HKEY_LOCAL_MACHINE 機碼下方。
/s 指示憑證存放區是一個系統存放區。 如果不指定此選項,會將存放區視為 StoreFile
/sha1sha1Hash 指定憑證、CTL 或 CRL 的 SHA1 雜湊來進行加入、刪除或儲存。
/v 指定詳細資訊模式;顯示憑證、CTL 和 CRL 的詳細資訊。 這個選項無法與 /add/del/put 選項一起使用。
/yprovider 指定存放區提供者名稱。
/7 將目的存放區儲存成 PKCS #7 物件。
/? 顯示工具的命令語法和選項。

備註

Certmgr.exe 會執行下列幾種基本功能:

  • 將憑證、CTL 和 CRL 顯示到主控台。
  • 將憑證、CTL 和 CRL 加入憑證存放區。
  • 從憑證存放區刪除憑證、CTL 和 CRL。
  • 將 X.509 憑證、CTL 或 CRL 從憑證存放區儲存到檔案。

Certmgr.exe 可使用於兩種憑證存放區類型:StoreFile 和系統存放區。 不需要指定憑證存放區的類型;Certmgr.exe可以識別存放區類型並執行適當的作業。

在沒有指定任何選項的情況下執行 Certmgr.exe 將會啟動 certmgr.msc 嵌入式管理單元,這個單元含有 GUI,會幫助憑證管理工作,您也可以從命令列使用這些憑證管理工作。 GUI 提供一個可從磁碟將憑證、CTL 和 CRL 複製到憑證存放區的匯入精靈。

您可以編譯並執行下列程式碼以找到 X509Certificate 存放 sourceStorenamedestinationStorename 參數的名字。

using System;
using System.Security.Cryptography.X509Certificates;

public class Example
{
   public static void Main()
   {
      foreach (var storeValue in Enum.GetValues(typeof(StoreName))) {
         X509Store store = new X509Store((StoreName) storeValue);
         store.Open(OpenFlags.ReadOnly);
         Console.WriteLine(store.Name);
      }
   }
}
Imports System.Security.Cryptography.X509Certificates

Module Example
    Public Sub Main()
        For Each storeValue In [Enum].GetValues(GetType(StoreName))
            Dim store As New X509Store(CType(storeValue, StoreName))
            store.Open(OpenFlags.ReadOnly)
            Console.WriteLine(store.Name)
        Next
    End Sub
End Module

如需憑證的詳細資訊,請參閱使用憑證

範例

下列命令會顯示叫做 my 且具有詳細資訊輸出的預設系統存放區。

certmgr /v /s my

下列命令會將 myFile.ext 檔案中的所有憑證加入到名為 newFile.ext 的新檔案中。

certmgr /add /all /c myFile.ext newFile.ext

下列命令會將 testcert.cer 檔案中的憑證加入至 my 系統存放區。

certmgr /add /c testcert.cer /s my

下列命令會將 TrustedCert.cer 檔案中的憑證加入至根憑證存放區。

certmgr /c /add TrustedCert.cer /s root

下列命令會將 myCert 系統存放區中通用名稱為 my 的憑證儲存到名為 newCert.cer 的檔案。

certmgr /add /c /n myCert /s my newCert.cer

下列命令會刪除 my 系統存放區中的所有 CTL,並將產生的存放區儲存到名為 newStore.str 的檔案。

certmgr /del /all /ctl /s my newStore.str

下列命令會將 my 系統存放區中的憑證儲存在 newFile 檔案。 系統會提示您輸入來自 my 的憑證號碼,以便放置在 newFile 中。

certmgr /put /c /s my newFile

另請參閱