憑證建立工具 (Makecert.exe)
憑證建立工具可以產生僅供測試用途的 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) 位置,這個位置包含私密金鑰。如果金鑰容器不存在,它將會被建立。 |
-sr location |
指定主體的憑證存放區位置。Location 可以是 currentuser (預設值) 或 localmachine。 |
-ss store |
指定主體的憑證存放區名稱,其儲存輸出憑證。 |
-# number |
指定從 1 到 2,147,483,647 的序號。預設值是由 Makecert.exe 產生的唯一值。 |
-$ authority |
指定憑證的簽署授權單位,它必須設定成 commercial (商業軟體發行者所用的憑證) 或 individual (個人軟體發行者所用的憑證)。 |
-? |
顯示工具的命令語法和基本選項清單。 |
-! |
顯示工具的命令語法和擴充選項清單。 |
擴充選項
選項 | 描述 |
---|---|
-a algorithm |
指定簽章演算法。必須是 md5 (預設值) 或 sha1。 |
-bmm/dd/yyyy |
指定有效期間的起始日期。預設為憑證的建立日期。 |
-cycertType |
指定憑證類型。有效值為 end (代表終端實體)、authority (代表憑證授權單位)。 |
-dname |
顯示主體的名稱。 |
-emm/dd/yyyy |
指定有效期間的結束日期。預設為 12/31/2039 11:59:59 GMT。 |
-ekuoid[,oid] |
插入逗號分隔的清單、增強金鑰使用方法的物件識別項 (OID) 至憑證。 |
-h number |
指定這個憑證以下的樹狀結構最大高度。 |
-ic file |
指定發行者的憑證檔。 |
-ikkeyName |
指定發行者的金鑰容器名稱。 |
-ikykeytype |
指定發行者的金鑰類型,必須是 signature、exchange 或表示提供者類型的整數。根據預設,可以對交換金鑰傳遞 1,並對簽章金鑰傳遞 2。 |
-in name |
指定發行者的憑證通用名稱。 |
-ipprovider |
指定發行者的 CryptoAPI 提供者 (Provider) 名稱。 |
-ir location |
指定發行者的憑證存放區位置。Location 可以是 currentuser (預設值) 或 localmachine。 |
-isstore |
指定發行者的憑證存放區名稱。 |
-ivpvkFile |
指定發行者的 .pvk 私密金鑰檔。 |
-iypvkFile |
指定發行者的 CryptoAPI 提供者類型。 |
-llink |
連結至原則資訊 (例如 URL)。 |
-m number |
以月份指定憑證有效期間的時間。 |
-nscp |
包含 Netscape 用戶端授權擴充。 |
-r |
建立自動簽名的憑證。 |
-sc file |
指定主體的憑證檔。 |
-skykeytype |
指定主體的金鑰類型,必須是 signature、exchange 或表示提供者類型的整數。根據預設,可以對交換金鑰傳遞 1,並對簽章金鑰傳遞 2。 |
-spprovider |
指定主體的 CryptoAPI 提供者名稱。 |
-svpvkFile |
指定主體的 .pvk 私密金鑰檔。如果沒有存在的話,會建立此檔案。 |
-sy type |
指定主體的 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