Certmgr.exe (証明書マネージャー ツール)

証明書マネージャー ツール (Certmgr.exe) は、証明書、証明書信頼リスト (CTL: Certificate Trust List)、および証明書失効リスト (CRL: Certificate Revocation List) を管理します。

証明書マネージャーは、Windows 10 SDK と共にインストールされます。 ツールを起動するには、Visual Studio 開発者コマンド プロンプトまたは Visual Studio Developer PowerShell を使用します。

Note

証明書マネージャー ツール (Certmgr.exe) はコマンド ライン ユーティリティですが、証明書 (Certmgr.msc) は Microsoft 管理コンソール (MMC: Microsoft Management Console) スナップインです。 通常、Certmgr.msc は Windows のシステム ディレクトリにあるので、コマンド ラインで「certmgr」と入力すると、Visual Studio 用開発者コマンド プロンプトを開いていた場合でも証明書 MMC スナップインが読み込まれることがあります。 これは、Path 環境変数で、スナップインのパスが証明書マネージャー ツールのパスよりも前に指定されているためです。 この問題が発生した場合は、実行可能ファイルのパスを指定して Certmgr.exe コマンドを実行できます。例: %ProgramFiles(x86)%\Windows Kits\10\bin\10.0.22000.0\arm64\certmgr.exe

X.509 証明書の概要については、「証明書の使用」を参照してください。

構文

コマンド プロンプトで、次のように入力します。

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 ストア オープン フラグを指定します。 これは CertOpenStore に渡される dwFlags パラメーターです。 既定値は 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 には、次のいずれかを指定する必要があります。

- 証明書ストアが HKEY_CURRENT_USER キーに含まれる場合は currentUser を指定します。 既定値です。
- 証明書ストアが HKEY_LOCAL_MACHINE キーに含まれる場合は localMachine を指定します。
/s 証明書ストアがシステム ストアであることを指定します。 このオプションを指定しない場合、ストアは StoreFile と見なされます。
/sha1sha1Hash 追加、削除、または保存する証明書、CTL、または CRL の SHA1 ハッシュを指定します。
/v 詳細出力モードを指定します。このモードでは、証明書、CTL、および CRL に関する詳細情報が表示されます。 このオプションは、 /add/del、または /put のオプションと共に指定できません。
/yprovider ストア プロバイダー名を指定します。
/7 出力証明書ストアを PKCS #7 オブジェクトとして保存します。
/? このツールのコマンド構文とオプションを表示します。

Remarks

Certmgr.exe は次の基本的な機能を実行します。

  • 証明書、CTL、および CRL をコンソールに表示します。
  • 証明書、CTL、および CRL を証明書ストアに追加します。
  • 証明書、CTL、および CRL を証明書ストアから削除します。
  • 証明書ストアに含まれている X.509 証明書、CTL、または CRL をファイルに保存します。

Certmgr.exe は、StoreFile とシステム ストアという 2 つの種類の証明書ストアに対して機能します。 証明書ストアの種類を指定する必要はありません。Certmgr.exe がストアの種類を識別し、適切な操作を実行します。

オプションを何も指定せずに Certmgr.exe を実行すると、証明書の管理タスクの実行時に役立つ GUI を備えた certmgr.msc スナップインが起動します。これらのタスクはコマンド ラインでも実行できます。 この GUI には、証明書、CTL、および CRL をディスクから証明書ストアへとコピーする、インポート ウィザードが用意されています。

次のコードをコンパイルおよび実行することによって、sourceStorename パラメーターおよび destinationStorename パラメーターについて X509Certificate ストアの名前を検索できます。

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

関連項目