Makecert.exe (憑證建立工具)
更新:2011 年 4 月
憑證建立工具可以產生僅供測試用途的 X.509 憑證。 它建立數位簽章的公開和私密金鑰組 (Key Pair),並且將它儲存到憑證檔。 這個工具也以指定的發行者 (Publisher) 名稱與金鑰組產生關聯,並建立 X.509 憑證,其繫結使用者指定的名稱到金鑰組的共用部分。
Makecert.exe 包含基本和擴充選項。 基本選項是最常用來建立憑證。 而擴充選項提供更多的彈性。
這個工具所產生的憑證私密金鑰應該永遠都不會存放在 .snk 檔案中。 如果您需要儲存私密金鑰,您應該使用金鑰容器。 如需關於如何將私密金鑰儲存在金鑰容器中的詳細資訊,請參閱HOW TO:將對稱金鑰儲存在金鑰容器中.
注意
您應該使用憑證存放區,安全地存放憑證。這個工具所使用的 .snk 檔案會以未受保護的方式存放私密金鑰。當您建立或匯入 .snk 檔案後,在使用時應該要特別注意它的安全性,而且作業完畢時要將它移除。
這個工具會自動隨 Visual Studio 和 Windows SDK 一起安裝。 若要執行工具,建議您使用 Visual Studio 命令提示字元或 Windows SDK 命令提示字元。 這些公司可讓您輕鬆地執行工具,而不需瀏覽至安裝資料夾。 如需詳細資訊,請參閱Visual Studio 和 Windows SDK 命令提示字元。
如果您已經在電腦上安裝 Visual Studio:在工作列上,依序按一下 Start、All Programs、Visual Studio、Visual Studio Tools,然後按一下 Visual Studio Command Prompt。
-或-
如果您已經在電腦上安裝 Windows SDK:在工作列上,依序按一下 Start、All Programs、Windows SDK 的資料夾,然後按一下Command Prompt(或 CMD Shell)。
在命令提示字元中輸入下列文字:
makecert [options] outputCertificateFile
引數 |
描述 |
---|---|
outputCertificateFile |
測試 X.509 憑證將被寫入的 .cer 檔案名稱。 |
基本選項
選項 |
描述 |
---|---|
-n name |
指定主體的憑證名稱。 這個名稱必須遵照 X.500 標準。 最簡單的方法是在雙引號內指定名稱,並在前面加上 CN=;例如,-n "CN=myName"。 |
-pe |
將產生的私密金鑰標記為可匯出。 如此可在憑證中加入私密金鑰。 |
-sk keyname |
指定主體的金鑰容器 (Container) 位置,這個位置包含私密金鑰。 如果金鑰容器不存在,它將會被建立。 |
-sr location |
指定主體的憑證存放區位置。 位置 可以是 currentuser(預設) 或localmachine。 |
-ss store |
指定主體的憑證存放區名稱,其儲存輸出憑證。 |
-# number |
指定從 1 到 2,147,483,647 的一個序號。 預設値是由 Makecert.exe 所產生的唯一值。 |
-$ authority |
指定憑證的簽署授權單位,它必須設定成 commercial (商業軟體發行者所用的憑證) 或 individual (個人軟體發行者所用的憑證)。 |
-? |
顯示工具的命令語法和基本選項清單。 |
-! |
顯示工具的命令語法和擴充選項清單。 |
擴充選項
選項 |
描述 |
---|---|
-a 演算法 |
指定簽章演算法。 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 提供者 (Provider) 名稱。 如需關於 CryptoAPI 提供程式名稱的資訊,請參閱–sp選項。 |
-ir 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
下列命令建立可用於測試 Web 應用程式的自我簽署憑證,該應用程式會在 URL 為 www.example.com 的 Web 伺服器上使用安全通訊端層 (SSL)。 由 –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
下列命令會建立憑證,並將其儲存到存放區中。 第一個命令會使用預設的測試根憑證建立憑證,並將該憑證儲存到存放區中。 第二個命令會使用新建的憑證建立另一個憑證,並將第二個憑證儲存到另一個存放區中。
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
請參閱
參考
Visual Studio 和 Windows SDK 命令提示字元
其他資源
變更記錄
日期 |
記錄 |
原因 |
---|---|---|
2011 年 4 月 |
加入使用 Visual Studio 和 Windows SDK 命令提示字元的相關資訊。 |
資訊加強。 |
2010 年 5 月 |
大規模修訂。 |
客戶回函。 |