Makecert.exe (証明書作成ツール)
更新 : 2011 年 4 月
証明書作成ツールは、テスト目的専用の X.509 証明書を生成します。 このツールは、デジタル署名用の公開キーと秘密キーのペアを作成し、証明書ファイルの中に格納します。 また、このキー ペアと指定された発行元の名前を関連付けて、ユーザー指定の名前とキー ペアの公開部分を結びつける X.509 証明書を作成します。
Makecert.exe には基本オプションと拡張オプションがあります。 証明書の作成に最も一般的に使用されるのは基本オプションです。 拡張オプションを使用すると、証明書をより柔軟に設定できます。
このツールで生成された証明書の秘密キーは、.snk ファイルに格納しないでください。 秘密キーを格納する必要がある場合は、キー コンテナーを使用することをお勧めします。 秘密キーをキー コンテナーに格納する方法の詳細については、「方法 : キー コンテナーに非対称キーを格納する」を参照してください。
注意
証明書を安全に格納するには、証明書ストアを使用する必要があります。このツールで使用する .snk ファイルでは、秘密キーは保護されない状態で格納されます。このため .snk ファイルを作成またはインポートする場合、.snk ファイルの使用中はセキュリティに細心の注意を払い、作業が終了したらファイルを必ず削除してください。
このツールは Visual Studio および Windows SDK と一緒に自動的にインストールされます。 このツールを実行するには、Visual Studio コマンド プロンプトまたは Windows SDK コマンド プロンプト (CMD シェル) を使用することをお勧めします。 これらのユーティリティを使用すると、インストール フォルダーに移動することなくツールを簡単に実行できます。 詳細については、「Visual Studio と Windows SDK のコマンド プロンプト」を参照してください。
コンピューターに Visual Studio がインストールされている場合は、タスク バーの [スタート] ボタンをクリックし、[すべてのプログラム]、[Visual Studio]、[Visual Studio Tools]、[Visual Studio Command Prompt] の順にクリックします。
または
コンピューターに Windows SDK がインストールされている場合は、タスク バーの [スタート] ボタンをクリックし、[すべてのプログラム]、Windows SDK のフォルダー、[Command Prompt] (または [CMD Shell]) の順にクリックします。
コマンド プロンプトに次のように入力します。
makecert [options] outputCertificateFile
引数 |
説明 |
---|---|
outputCertificateFile |
テスト X.509 証明書を書き込む .cer ファイルの名前。 |
基本オプション
オプション |
説明 |
---|---|
-n name |
サブジェクトの証明書名を指定します。 この名前は X.500 標準に準拠する必要があります。 最も簡単な方法は、名前の前に CN= を付けて二重引用符で囲んで指定する方法です。たとえば、-n "CN=myName" とします。 |
-pe |
生成された秘密キーをエクスポート可能と見なします。 これにより、秘密キーを証明書に組み込むことができるようになります。 |
-sk keyname |
秘密キーを含む、サブジェクトのキー コンテナーの位置を指定します。 キー コンテナーが存在しない場合は、このオプションで作成されます。 |
-sr location |
サブジェクトの証明書ストアの位置を指定します。 location には、currentuser (既定値) または localmachine を指定できます。 |
-ss store |
出力される証明書を格納する、サブジェクトの証明書ストア名を指定します。 |
-# number |
1 から 2,147,483,647 までのシリアル番号を指定します。 既定値は、Makecert.exe によって生成される一意の値です。 |
-$ authority |
証明書の署名機関を指定します。commercial (商用ソフトウェアの発行元が使用する証明書の場合) または individual (個人ソフトウェアの発行元が使用する証明書の場合) を設定する必要があります。 |
-? |
このツールのコマンド構文と基本オプションの一覧を表示します。 |
-! |
このツールのコマンド構文と拡張オプションの一覧を表示します。 |
拡張オプション
オプション |
説明 |
---|---|
-a algorithm |
署名アルゴリズムを指定します。 algorithm には、md5、sha1 (既定値)、sha256、sha384、または sha512 を指定する必要があります。 |
-b mm/dd/yyyy |
有効期間の開始日を指定します。 既定値は現在の日付です。 |
-crl |
証明書ではなく証明書再配置リスト (CRL) を生成します。 |
-cy certType |
証明書の種類を指定します。 有効な値は、エンド エンティティの場合には end、証明機関の場合には authority です。 |
-e mm/dd/yyyy |
有効期間の終了日を指定します。 既定値は 12/31/2039 11:59:59 GMT です。 |
-eku oid[,oid…] |
コンマ区切りの、拡張キー用途オブジェクト識別子 (OID) の一覧を証明書に挿入します。 |
-h number |
この証明書の下の、ツリーの高さの最大値を指定します。 |
-ic file |
発行元の証明書ファイルを指定します。 |
-ik keyName |
発行元のキー コンテナー名を指定します。 |
-iky keytype |
発行元のキーの種類を指定します。signature (キーがデジタル署名に使用されることを示す)、exchange (キーがキー暗号化とキー交換に使用されることを示す)、プロバイダーの種類を表す整数のいずれかを指定する必要があります。 既定では、交換キーに 1、署名キーに 2 を渡すことができます。 |
-in name |
発行元の証明書共通名を指定します。 |
-ip provider |
発行元の CryptoAPI プロバイダー名を指定します。 CryptoAPI プロバイダー名の詳細については、–sp オプションの説明を参照してください。 |
-ir location |
発行元の証明書ストアの位置を指定します。 location には、currentuser (既定値) または localmachine を指定できます。 |
-is store |
発行元の証明書ストア名を指定します。 |
-iv pvkFile |
発行元の秘密キー ファイル .pvk を指定します。 |
-iy type |
発行元の CryptoAPI プロバイダーの種類を指定します。 CryptoAPI プロバイダーの種類の詳細については、–sy オプションの説明を参照してください。 |
-l link |
ポリシー情報 (たとえば URL) とリンクします。 |
-len number |
生成されるキーの長さをビット単位で指定します。 |
-m number |
証明書の有効期間の長さを月単位で指定します。 |
-nscp |
Netscape のクライアント承認拡張機能を組み込みます。 |
-r |
自己署名証明書を作成します。 |
-sc file |
サブジェクトの証明書ファイルを指定します。 |
-sky keytype |
サブジェクトのキーの種類を指定します。signature (キーがデジタル署名に使用されることを示す)、exchange (キーがキー暗号化とキー交換に使用されることを示す)、プロバイダーの種類を表す整数のいずれかを指定する必要があります。 既定では、交換キーに 1、署名キーに 2 を渡すことができます。 |
-sp provider |
サブジェクトの CryptoAPI プロバイダー名を指定します。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider のレジストリ サブキーで定義されている必要があります。 –sp と –sy の両方が存在する場合、CryptoAPI プロバイダーの種類は、プロバイダーのサブキーの Type 値に対応する必要があります。 |
-sv pvkFile |
サブジェクトの秘密キー ファイル .pvk を指定します。 ファイルが存在しない場合は、このオプションで作成されます。 |
-sy type |
サブジェクトの CryptoAPI プロバイダーの種類を指定します。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider Types のレジストリ サブキーで定義されている必要があります。 –sy と –sp の両方が存在する場合、CryptoAPI プロバイダーの名前は、プロバイダーの種類のサブキーの Name 値に対応する必要があります。 |
-tbs |
署名する証明書または CRL ファイルを指定します。 |
例
既定のテスト ルートが発行するテスト証明書を作成し、testCert.cer に書き込むコマンドを次に示します。
makecert testCert.cer
既定のテスト ルートが発行する証明書を作成し、証明書ストアに保存するコマンドを次に示します。
makecert -ss testCertStore
既定のテスト ルートが発行する証明書を作成し、証明書ストアに保存するコマンドを次に示します。 証明書は currentuser ストアに明示的に保存されます。
makecert -ss testCertStore -sr currentuser
サブジェクトのキー コンテナーと証明書サブジェクトの X.500 名を使用して、テスト証明書を作成し、textXYZ.cer に書き込むコマンドを次に示します。
makecert -sk XYZ -n "CN=XYZ Company" testXYZ.cer
既定のテスト ルートが発行する証明書を作成し、.pvk ファイルを作成して、証明書をストアとファイルの両方に出力するコマンドを次に示します。
makecert -sv testCert.pvk -ss testCertStore testCert.cer
既定のテスト ルートが発行する証明書を作成し、キー コンテナーを作成して、証明書をストアとファイルの両方に出力するコマンドを次に示します。
makecert -sk myTestKey -ss testCertStore testCert.cer
自己署名の証明書を作成し、"CN=XYZ Company" という件名を指定し、有効期間の開始日と終了日を指定し、my ストアにキーを配置し、交換キーを指定し、秘密キーをエクスポート可能にするコマンドを次に示します。
makecert -r -pe -n "CN=XYZ Company" -b 01/01/2005 -e 01/01/2010 -sky exchange -ss my
URL が www.example.com の Web サーバーで SSL (Secure Sockets Layer) を使用する Web アプリケーションをテストするために使用できる自己署名証明書を作成するコマンドを次に示します。 –eku オプションで定義される OID は、その証明書を SSL サーバー証明書として識別します。 証明書は my ストアに格納され、コンピューター (ユーザーではなく) レベルで使用できます。 証明書の秘密キーはエクスポート可能で、証明書は 2010 年 5 月 10 日から 2011 年 12 月 22 日まで有効です。
Makecert –r –pe –n CN="www.example.com" –b 05/10/2010 –e 12/22/2011 –eku 1.3.6.1.5.5.7.3.1 –ss my –sr localmachine -sky exchange –sp "Microsoft RSA SChannel Cryptographic Provider" –sy 12
証明書を作成し、ストアに保存するコマンドを次に示します。 最初のコマンドは、既定のテスト ルートを使用して証明書を作成し、ストアに保存します。 2 番目のコマンドは、新しく作成された証明書を使用して 2 つ目の証明書を作成し、別のストアに保存します。
makecert -sk myTestKey -ss testCertStore
makecert -is testCertStore -ss anotherTestStore
証明書を作成し、ストアに保存するコマンドを次に示します。 最初のコマンドは、証明書を my ストアに保存します。 2 番目のコマンドは、新しく作成された証明書を使用して別の証明書を作成します。 my ストアには複数の証明書が格納されているため、2 番目のコマンドは最初のコマンドで作成された証明書の共通名を使用して、証明書を識別します。
makecert -sk myTestKey -n "CN=XXZZYY" -ss my
makecert -is my -in "XXZZYY" -ss anotherTestStore
証明書を作成し、ファイルとストアに保存するコマンドを次に示します。 最初のコマンドは、既定のテスト ルートを使用して証明書を作成し、my ストアとファイルに保存します。 2 番目のコマンドは、新しく作成された testCert.cer 証明書を使用して別の証明書を作成します。 my ストアには複数の証明書が格納されているため、2 番目のコマンドは証明書ファイル名を使用して、最初のコマンドで作成された証明書を一意に識別します。
makecert -sk myTestKey -n "CN=XXZZYY" -ss my testCert.cer
makecert -is my -ic testCert.cer -ss anotherTestStore
参照
参照
Cert2spc.exe (ソフトウェア発行元証明書テスト ツール)
Visual Studio と Windows SDK のコマンド プロンプト
その他の技術情報
履歴の変更
日付 |
履歴 |
理由 |
---|---|---|
2011 年 4 月 |
Visual Studio と Windows SDK のコマンド プロンプトの使用に関する情報を追加。 |
情報の拡充 |
2010 年 5 月 |
全面的に改訂。 |
カスタマー フィードバック |