憑證建立工具 (Makecert.exe)

更新:2007 年 11 月

憑證建立工具可以產生僅供測試用途的 X.509 憑證。它建立數位簽章的公開和私密金鑰組 (Key Pair),並且將它儲存到憑證檔。這個工具也以指定的發行者 (Publisher) 名稱與金鑰組產生關聯,並建立 X.509 憑證,其繫結使用者指定的名稱到金鑰組的共用部分。

Makecert.exe 包含基本和擴充選項。基本選項是最常用來建立憑證。而擴充選項提供更多的彈性。

這個工具所產生的憑證私密金鑰應該永遠都不會存放在 .snk 檔案中。如果您需要儲存私密金鑰,您應該使用金鑰容器。如需如何將私密金鑰存放在金鑰容器中的詳細資訊,請參閱 HOW TO:將對稱金鑰儲存在金鑰容器中

警告:

您應該使用憑證存放區,安全地存放憑證。這個工具所使用的 .snk 檔案會以未受保護的方式存放私密金鑰。當您建立或匯入 .snk 檔案後,在使用時應該要特別注意它的安全性,而且作業完畢時要將它移除。

 makecert [options] outputCertificateFile

引數

描述

outputCertificateFile

測試 X.509 憑證將被寫入的 .cer 檔案名稱。

基本選項

選項

描述

-nx509name

指定主體的憑證名稱。這個名稱必須遵照 X.500 標準。最簡單的方法是在雙引號內指定名稱,並以 CN= 為開頭;例如,"CN=myName"。

-pe

將產生的私密金鑰標記為可匯出。如此可在憑證中加入私密金鑰。

-skkeyname

指定主體的金鑰容器 (Container) 位置,這個位置包含私密金鑰。如果金鑰容器不存在,它將會被建立。

-srlocation

指定主體的憑證存放區位置。Location 可以是 currentuser (預設值)或 localmachine

-ssstore

指定主體的憑證存放區名稱,其儲存輸出憑證。

-#number

指定從 1 到 2,147,483,647 的序號。預設值是由 Makecert.exe 產生的唯一值。

-$ authority

指定憑證的簽署授權單位,它必須設定成 commercial (商業軟體發行者所用的憑證) 或 individual (個人軟體發行者所用的憑證)。

-?

顯示工具的命令語法和基本選項清單。

-!

顯示工具的命令語法和擴充選項清單。

擴充選項

選項

描述

-aalgorithm

指定簽章演算法。必須是 md5 (預設值) 或 sha1

-bmm/dd/yyyy

指定有效期間的起始日期。預設為憑證的建立日期。

-cycertType

指定憑證類型。有效值為 end (代表終端實體)、authority (代表憑證授權單位)。

-dname

顯示主體的名稱。

-emm/dd/yyyy

指定有效期間的結束日期。預設為 12/31/2039 11:59:59 GMT。

-ekuoid[,oid]

插入逗號分隔的清單、增強金鑰使用方法的物件識別項 (OID) 至憑證。

-hnumber

指定這個憑證以下的樹狀結構最大高度。

-icfile

指定發行者的憑證檔。

-ikkeyName

指定發行者的金鑰容器名稱。

-ikykeytype

指定發行者的金鑰類型,必須是 signatureexchange 或表示提供者類型的整數。根據預設,可以對交換金鑰傳遞 1,並對簽章金鑰傳遞 2

-in name

指定發行者的憑證通用名稱。

-ipprovider

指定發行者的 CryptoAPI 提供者 (Provider) 名稱。

-irlocation

指定發行者的憑證存放區位置。Location 可以是 currentuser (預設值) 或 localmachine

-isstore

指定發行者的憑證存放區名稱。

-ivpvkFile

指定發行者的 .pvk 私密金鑰檔。

-iypvkFile

指定發行者的 CryptoAPI 提供者類型。

-llink

連結至原則資訊 (例如 URL)。

-mnumber

以月份指定憑證有效期間的時間。

-nscp

包含 Netscape 用戶端授權擴充。

-r

建立自動簽名的憑證。

-scfile

指定主體的憑證檔。

-skykeytype

指定主體的金鑰類型,必須是 signatureexchange 或表示提供者類型的整數。根據預設,可以對交換金鑰傳遞 1,並對簽章金鑰傳遞 2

-spprovider

指定主體的 CryptoAPI 提供者名稱。

-svpvkFile

指定主體的 .pvk 私密金鑰檔。如果沒有存在的話,會建立此檔案。

-sytype

指定主體的 CryptoAPI 提供者類型。

範例

下列命令會建立預設測試根憑證所發出的測試憑證,並將它寫入 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

下列命令會建立憑證,並將其儲存到存放區中。第一個命令會使用預設的測試根憑證建立憑證,並將該憑證儲存到存放區中。第二個命令會使用新建的憑證建立另一個憑證,並將第二個憑證儲存到另一個存放區中。

makecert -sk myTestKey -ss testCertStore
makecert -is testCertStore -ss anotherTestStore

下列命令會建立憑證,並將其儲存到存放區中。第一個命令會將憑證儲存到 my 存放區中。第二個命令會使用新建的憑證建立另一個憑證。因為 my 存放區中有一個以上的憑證,所以第二個命令會使用它的一般名稱識別第一個憑證。

makecert -sk myTestKey -n "CN=XXZZYY" -ss my
makecert -is my -in "XXZZYY" -ss anotherTestStore

下列命令會建立憑證,並將其儲存到檔案和存放區中。第一個命令會使用預設的測試根憑證建立憑證,並將該憑證儲存到 my 存放區和檔案中。第二個命令會使用新建的 testCert.cer 憑證建立另一個憑證。因為 my 存放區中有一個以上的憑證,所以第二個命令會使用憑證檔名來唯一識別第一個憑證。

makecert -sk myTestKey -n "CN=XXZZYY" -ss my testCert.cer
makecert -is my -ic testCert.cer -ss anotherTestStore

請參閱

參考

.NET Framework 工具

軟體發行者憑證測試工具 (Cert2spc.exe)

SDK 命令提示字元